[MacPorts] #26247: Various libusb libraries have same base name; please make each unique

MacPorts noreply at macports.org
Wed Aug 25 15:49:46 PDT 2010


#26247: Various libusb libraries have same base name; please make each unique
---------------------------------------------------+------------------------
  Reporter:  michaelld@…                           |       Owner:  macports-tickets@…                   
      Type:  enhancement                           |      Status:  reopened                             
  Priority:  Normal                                |   Milestone:                                       
 Component:  ports                                 |     Version:  1.9.1                                
Resolution:                                        |    Keywords:                                       
      Port:  libusb, libusb-compat, libusb-legacy  |  
---------------------------------------------------+------------------------
Changes (by michaelld@…):

  * status:  closed => reopened
  * resolution:  invalid =>


Comment:

 This is an enhancement request more than a bug report; maybe a little bit
 of each.  I'm reopening this ticket for your re-consideration given the
 below.

 Let me give you another scenario, which BTW is what is happening that
 prompted this issue.  I'm linking to both 'libfoo' and 'libusb' legacy
 (but, I have the other libusb's installed as well since they are used by
 other ports).  libfoo comes back with:
 {{{
 FOO_LDFLAGS="-L${prefix}/lib -lfoo"
 }}}
 and libusb comes back with:
 {{{
 LIBUSB_LDFLAGS="-L${prefix}/lib/libusb-legacy -lusb"
 }}}
 Now when I link, I see:
 {{{
 gcc -o bar bar.o ${FOO_LDFLAGS} ${LIBUSB_LDFLAGS}
 }}}
 so, which version of -lusb is used, the one in ${prefix}/lib or the one in
 ${prefix}/lib/libusb-legacy?

 I can tell you from testing it that it's the former because GCC will
 search for undetermined libraries in the order in which -L is places on
 the command line.  I would have to go into the Makefile and change the
 link command to read:
 {{{
 gcc -o foo foo.c ${LIBUSB_LDFLAGS} ${FOO_LDFLAGS}
 }}}
 in order to find the correct version of -lusb, which I really don't want
 to do because, among other reasons, it's not guaranteed to work with the
 next version of BAR.

 Now, OTOH, if the library names are unique (i.e., "-lusb-legacy" is used),
 then that's not an issue no matter where they are located.  And, given
 that BAR retrieves the LIBUSB info via PKGCONFIG, renaming the library is
 already handled robustly.

-- 
Ticket URL: <http://trac.macports.org/ticket/26247#comment:4>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list