[MacPorts] #35172: boost @ 1.50 - Error Building boost

MacPorts noreply at macports.org
Mon Jul 16 13:22:22 PDT 2012


#35172: boost @ 1.50 - Error Building boost
-----------------------------------+----------------------------------------
 Reporter:  notinmyhead@…          |       Owner:  adfernandes@…           
     Type:  defect                 |      Status:  new                     
 Priority:  Normal                 |   Milestone:                          
Component:  ports                  |     Version:  2.1.1                   
 Keywords:                         |        Port:  boost                   
-----------------------------------+----------------------------------------

Comment(by adfernandes@…):

 Heh. I've hit this problem (mixing ABIs) before, a few years ago. I think
 that the people-who-do-things-like-ABIs got it all straightened out now,
 but back in the day, you are correct, it was a nightmare.

 My understanding is that as long as you link libgcc into your final shared
 object, and the shared object is all compiled by '''one''' complier,
 mixing objects across compilers is not ''supposed'' to be an issue
 anymore.

 Note heavy use of the word "should". :-)

 Hmm... think I can change the `depends_lib` to `depends_build` if I use
 `-static-libgcc  -static-libstdc++` when building.

 Then any "subtle runtime effects" are because the auto-figure-it-out-logic
 in the headers does not match the options used to compile the libraries.

 However... my view is that if headers don't match compiled libraries,
 that's a bug in the library. Any compile-time option that changes the
 semantics of compiled code should he hard-coded into the headers, and not
 guessed. You simply can't assume, given a shared object, that future
 compiles will use the same compiler.

 The portgroup is a nice idea, but too many software packages require boost
 as a dependency. Having to maintain many different boosts... ouch. I don't
 even want to think about it.

 Let me update the patch for the static-libgcc build. Okay. Scratch that.
 Boost specifically forbids static linking of the gcc runtime with dynamic
 objects, using their typical smart-ass commenting style "such a
 combination is too dangerous to be of use". So depends_lib and not
 depends_build it is.

 The above patch is all there is.

 Please feel free to chime in, everyone!

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


More information about the macports-tickets mailing list