Menu

#56 PowerPC Mac OS X: Undefined symbols saveFP restFP

v2.2.0
open
nobody
None
5
2018-10-04
2013-09-27
No

Building graphite2 1.2.3 on PowerPC Mac OS X (10.4 or 10.5) now fails:

Undefined symbols:
  "saveFP", referenced from:
      graphite2::Segment::justify(graphite2::Slot*, graphite2::Font const*, float, graphite2::justFlags, graphite2::Slot*, graphite2::Slot*)in Justifier.cpp.o
      graphite2::Slot::finalise(graphite2::Segment const*, graphite2::Font const*, graphite2::Position&, graphite2::Rect&, unsigned char, float&)in Slot.cpp.o
  "restFP", referenced from:
      graphite2::Segment::justify(graphite2::Slot*, graphite2::Font const*, float, graphite2::justFlags, graphite2::Slot*, graphite2::Slot*)in Justifier.cpp.o
      graphite2::Slot::finalise(graphite2::Segment const*, graphite2::Font const*, graphite2::Position&, graphite2::Rect&, unsigned char, float&)in Slot.cpp.o
ld: symbol(s) not found
collect2: ld returned 1 exit status

This was reported to the MacPorts project here:
https://trac.macports.org/ticket/40447

It did not used to fail, but now does. I don't know what changed. I thought it was related to cmake being updated from 2.8.10.2 to 2.8.11.2 but other users were unable to confirm that.

Here is the fix one of our developers has suggested:
https://trac.macports.org/attachment/ticket/40447/graphite2-takanori.diff
I have not evaluated it.

Discussion

  • Ryan Carsten Schmidt

    We're now using the above-mentioned patch to fix this problem.

    The problem seems to be caused by your CMakeLists.txt using -nodefaultlibs in LINK_FLAGS. (On PowerPC on Mac OS X, the default libs, specific libgcc, contain saveFP and restFP.) I haven't figured out why you use this directive; it's been there since Mac support was added in revision 982, and has been there for Linux since the file was created in revision 9.

     
  • Ryan Carsten Schmidt

    Looks like this hasn't been fixed in 1.3.10 yet. In MacPorts we're just removing your -nodefaultlibs.

     

Log in to post a comment.