Opened 10 years ago

Closed 17 months ago

#44384 closed defect (fixed)

libpaper fails to build on OS X Tiger

Reported by: djlambe11@… Owned by: macports-tickets@…
Priority: Normal Milestone:
Component: ports Version: 2.3.1
Keywords: tiger Cc:
Port: libpaper

Description

When compiling libpaper (version 1.1.24) on OS X 10.4 the following error appears in the log:

...
ld: unknown flag: -compatibility-version
...

This is due to the fact that earlier versions of OS X used -dylib_compatibility_version, and -dylib_current_version, which shows up later. The fix, then, is to patch ltmain.sh to use the -dylib* options where necessary. The problem with this is that the latest version of OS X I can currently run is Tiger, and I don't know when the switch was made.

On the other hand, even the newest versions of OS X support the -dylib* options as a compatibility feature, so it doesn't harm anything to use them there.

Therefore, I present a patch that enables a successful build.


Potentially Relevant Information:

  • Mac OS X 10.4.11 (Tiger)
  • XCode 2.5
  • PowerBook G4

Attachments (2)

patch-ltmain.sh.diff (838 bytes) - added by djlambe11@… 10 years ago.
Enable compilation on Tiger (and possibly other versions)
main.log (24.1 KB) - added by djlambe11@… 10 years ago.
main.log of the failing build

Download all attachments as: .zip

Change History (5)

Changed 10 years ago by djlambe11@…

Attachment: patch-ltmain.sh.diff added

Enable compilation on Tiger (and possibly other versions)

comment:1 Changed 10 years ago by ryandesign (Ryan Carsten Schmidt)

Could you attach the main.log file from the failed build?

This ticket is the only hit on Google for the search string "unknown flag: -compatibility-version" which makes me question the commonness of the problem or the correctness of the solution.

comment:2 Changed 10 years ago by djlambe11@…

Sorry, that was me missing the shift key. It was -compatibility_version (noting the underscore this time). I'm uploading my main.log now.

Notes, which led me to my original conclusion: From man ld on Tiger:

-dylib_compatibility_version number
              ...
              the  library  is  used.   This  option is used as the libtool(1)
              -compatibility_version number option when its -dynamic option is
              set.

From the man page found on the hard drive of my (broken) Mavericks machine:

 -compatibility_version number
                 ...
                 is used.  This option is also called -dylib_compatibil-
                 ity_version for compatibility.

with irrelevant parts shrouded behind ellipses. If you would like the full versions, I can attach them as well. It should be noted that these are taken directly from my xterm window, and the awkward hyphenation is a by-product of man.

The 10.4 version does not have the -compatibility_version flag, nor the -current_version one. However, since my two data points are so far separated, I have no clear line to draw as to which release removed the dylib_. Being that the older option is still accepted should allow the patch to proceed without issue, but it would probably be better to use a conditional to only use the dylib_ when it is strictly necessary.

Changed 10 years ago by djlambe11@…

Attachment: main.log added

main.log of the failing build

comment:3 Changed 17 months ago by kencu (Ken)

Resolution: fixed
Status: newclosed

fixed at some point

$ port -v installed libpaper
The following ports are currently installed:
  libpaper @1.1.28_0 (active) requested_variants='' platform='darwin 8' archs='ppc' date='2022-12-06T22:01:04-0800'
Note: See TracTickets for help on using tickets.