[boost-users] Compiling boost (4-way) 1.44.0 on MAC
Hi, I am trying to build a static library version of boost 1.44.0 on MAC OSX 10.5.8 (XCode 3.1.4) using bjam for the architectures ppc, ppc64, x86_64,i386. It builts everything just fine but I never get all architectures included. There is always at least one architecture missing. My command is: bjam toolset=darwin architecture=combined link=static threading=multi variant=release address-model=32_64 I searched the web and didn´t find anything appropriate (most is for xcode 3.2 and leopard) so I am asking in here if anybody has a clue how to get this done. :-/ Thanks in advance Samir
Samir Kharchi wrote:
Hi,
I am trying to build a static library version of boost 1.44.0 on MAC OSX 10.5.8 (XCode 3.1.4) using bjam for the architectures ppc, ppc64, x86_64,i386. It builts everything just fine but I never get all architectures included. There is always at least one architecture missing.
My command is: bjam toolset=darwin architecture=combined link=static threading=multi variant=release address-model=32_64
Please open darwin.jam, and locate the line that reads: # Build 3-way binary options = -arch i386 -arch ppc -arch x86_64 ; Before it, add ECHO "FORCING 3-WAY BINARY $(osx-version)" ; and try again. If that message is printed, copy-paste is here so that I know what the version is. Either you're actually on 1.6, or the logic that decides that you're on it is fauly in unobvious way. - Volodya
On 26.11.2010 18:21, Vladimir Prus wrote:
Please open darwin.jam, and locate the line that reads:
# Build 3-way binary options = -arch i386 -arch ppc -arch x86_64 ;
Before it, add
ECHO "FORCING 3-WAY BINARY $(osx-version)" ;
and try again. If that message is printed, copy-paste is here so that I know what the version is. Either you're actually on 1.6, or the logic that decides that you're on it is fauly in unobvious way.
- Volodya
Thanks. I added the according line and built again but that line is not printed into the Terminal console (of course it skips the files now..should I remove the previously built libs? or will it print out in any case? Will just remove them now in any case.).
Samir Kharchi wrote:
On 26.11.2010 18:21, Vladimir Prus wrote:
Please open darwin.jam, and locate the line that reads:
# Build 3-way binary options = -arch i386 -arch ppc -arch x86_64 ;
Before it, add
ECHO "FORCING 3-WAY BINARY $(osx-version)" ;
and try again. If that message is printed, copy-paste is here so that I know what the version is. Either you're actually on 1.6, or the logic that decides that you're on it is fauly in unobvious way.
- Volodya
Thanks. I added the according line and built again but that line is not printed into the Terminal console (of course it skips the files now..should I remove the previously built libs? or will it print out in any case? Will just remove them now in any case.).
This message should be printed in any case. Then, could you please try again, passing additional options: -a -d2 --with-program_options and note which command-line options are used for complication and linking, in particular, the -arch options. Post that here. - Volodya
On 26.11.2010 18:57, Vladimir Prus wrote:
This message should be printed in any case. Then, could you please try again, passing additional options:
-a -d2 --with-program_options
and note which command-line options are used for complication and linking, in particular, the -arch options. Post that here.
Thanks. What I did now already was add two more lines to darwin.jam so it is now saying: if $(address-model) = 32_64 { ECHO "ADDRESS MODEL 32 64 $(osx-version)" ; if $(support-ppc64) { ECHO "SUPPORT PPC64 $(osx-version)" ; [...] } else { ECHO "FORCING 3-WAY BINARY $(osx-version)" ; [...] } And when I build it prints: ADDRESS MODEL 32 64 10.5.8 SUPPORT PPC64 10.5.8 So it seems it doesn't correctly jump into the 3-way binary condition. :-/ What can I do about it?
On 26.11.2010 18:57, Vladimir Prus wrote:
This message should be printed in any case. Then, could you please try again, passing additional options:
-a -d2 --with-program_options
and note which command-line options are used for complication and linking, in particular, the -arch options. Post that here.
Ok, did that and the -arch options show all 4 architectures, so -arch i386 -arch ppc -arch x86_64 -arch ppc64 Doesn´t this mean all should be included? Strange. But why doesn´t it jump into the right condition in darwin.jam? Anyway, I will restart my computer now and try everything again. I assume when the -arch options show that all are included it should be right shouldn´t it? Back in a minute. thx already for your help.
Samir Kharchi wrote:
On 26.11.2010 18:57, Vladimir Prus wrote:
This message should be printed in any case. Then, could you please try again, passing additional options:
-a -d2 --with-program_options
and note which command-line options are used for complication and linking, in particular, the -arch options. Post that here.
Ok, did that and the -arch options show all 4 architectures, so -arch i386 -arch ppc -arch x86_64 -arch ppc64 Doesn´t this mean all should be included?
Yes, it means that all 4 architectures should be included -- and Boost.Build is working correctly. What is the actual problem you're trying to solve?
Strange. But why doesn´t it jump into the right condition in darwin.jam?
It goes into the CORRECT branch? You are on 1.5, and 4-way builds are supported on 1.5, so that's what the logic does.
Anyway, I will restart my computer now and try everything again.
Why do you think that restarting your computer will change anything? - Volodya
It works! Unbelievable. I don´t get it. Why does it work all of a sudden? I didn´t change anything in the command line and now it works. Sometimes you gotta love computers. :) Anyway, thanks not sure what made the difference but it works.
participants (2)
-
Samir Kharchi
-
Vladimir Prus