[MacPorts] #39391: CrimsonFields @0.5.3 build error; fix proposed

MacPorts noreply at macports.org
Sat Jun 8 11:40:36 PDT 2013


#39391: CrimsonFields @0.5.3  build error; fix proposed
---------------------------+--------------------------------
 Reporter:  mrosenstihl@…  |      Owner:  macports-tickets@…
     Type:  defect         |     Status:  new
 Priority:  Normal         |  Milestone:
Component:  ports          |    Version:  2.1.3
 Keywords:  haspatch       |       Port:  CrimsonFields
---------------------------+--------------------------------
 CrimsonFields does not compile on Mountain Lion, here is the relevant
 error in the logfile:

 {{{
 :info:build mv -f .deps/textbox.Tpo .deps/textbox.Po
 :info:build /usr/bin/clang++  -pipe -O2 -arch x86_64
 -I/opt/local/include/SDL -D_GNU_SOURCE=1 -D_THREAD_SAFE  -L/opt/local/lib
 -L/opt/local/lib -arch x86_64 -o crimson ai.o building.o combat.o
 container.o event.o game.o history.o initwindow.o main.o map.o mapwindow.o
 mission.o network.o options.o path.o platform.o player.o unit.o
 unitwindow.o SDL_zlib.o button.o extwindow.o fileio.o filewindow.o font.o
 gamewindow.o hexsup.o lang.o list.o listselect.o lset.o mapview.o
 mapwidget.o misc.o rect.o slider.o sound.o strutil.o surface.o textbox.o
 view.o widget.o window.o  -lz  -L/opt/local/lib -lSDLmain
 -Wl,-framework,AppKit -lSDL -Wl,-framework,Cocoa -lSDL_ttf -lSDL_mixer
 :info:build Undefined symbols for architecture x86_64:
 :info:build   "vtable for Path", referenced from:
 :info:build       AI::AssignObjectives() in ai.o
 :info:build       AI::UnitCanReach(Unit const*, Point const&, unsigned
 short) in ai.o
 :info:build       AI::CommandUnitRepair(Unit*) in ai.o
 :info:build       AI::UnitGoTo(Unit*, Point const&, unsigned short) in
 ai.o
 :info:build       AI::FindBestTarget(Unit const*) in ai.o
 :info:build       AI::FindBestHex(Unit const*, Unit const*) const in ai.o
 :info:build       AI::FindTransport(Unit const*, Point const&, unsigned
 short, bool) in ai.o
 :info:build       ...
 :info:build   NOTE: a missing vtable usually means the first non-inline
 virtual member function has no definition.
 :info:build ld: symbol(s) not found for architecture x86_64
 :info:build clang: error: linker command failed with exit code 1 (use -v
 to see invocation)
 :info:build make[2]: *** [crimson] Error 1
 :info:build make[2]: Leaving directory
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_games_CrimsonFields/CrimsonFields/work/crimson-0.5.3/src/cf'
 :info:build make[1]: *** [all-recursive] Error 1
 :info:build make[1]: Leaving directory
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_games_CrimsonFields/CrimsonFields/work/crimson-0.5.3/src'
 :info:build make: *** [all-recursive] Error 1
 :info:build make: Leaving directory
 `/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_games_CrimsonFields/CrimsonFields/work/crimson-0.5.3'
 :info:build Command failed:  cd
 "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_games_CrimsonFields/CrimsonFields/work/crimson-0.5.3"
 && /usr/bin/make -j8 -w all
 :info:build Exit code: 2
 :error:build org.macports.build for port CrimsonFields returned: command
 execution failed
 :debug:build Error code: CHILDSTATUS 4052 2
 :debug:build Backtrace: command execution failed
     while executing
 "system -nice 0 $fullcmdstring"
     ("eval" body line 1)
     invoked from within
 "eval system $notty $nice \$fullcmdstring"
     invoked from within
 "command_exec build"
     (procedure "portbuild::build_main" line 8)
     invoked from within
 "$procedure $targetname"
 :info:build Warning: targets not executed for CrimsonFields:
 org.macports.activate org.macports.build org.macports.destroot
 org.macports.install
 :notice:build Please see the log file for port CrimsonFields for details:
 /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_release_tarballs_ports_games_CrimsonFields/CrimsonFields/main.log
 }}}

 Proposed fix:
 CrimsonFields can be compiled with the following fix to src/cf/path.cpp:

 remove "inline" from Path::ETA and Path::StopSearch, see following diff:


 {{{
 --- path.cpp    2013-06-08 20:32:35.000000000 +0200
 +++ path..cpp.orig      2013-06-08 20:32:00.000000000 +0200
 @@ -212,7 +212,7 @@
  // RETURNS    : estimated cost to destination
  ////////////////////////////////////////////////////////////////////////

 -unsigned short Path::ETA( const Point &p ) const {
 +inline unsigned short Path::ETA( const Point &p ) const {
    return Distance( p, end ) * quality;
  }

 @@ -249,7 +249,7 @@
  // RETURNS    : TRUE if search aborted, FALSE otherwise
  ////////////////////////////////////////////////////////////////////////

 -bool Path::StopSearch( const PathNode &next ) const {
 +inline bool Path::StopSearch( const PathNode &next ) const {
    return Distance( next.pos, end ) <= deviation;
  }

 }}}

-- 
Ticket URL: <https://trac.macports.org/ticket/39391>
MacPorts <http://www.macports.org/>
Ports system for OS X


More information about the macports-tickets mailing list