Subject: Re: [Boost-bugs] [Boost C++ Libraries] #8266: context library don't compile for Mac OSX universal binary
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-01-09 18:37:31
#8266: context library don't compile for Mac OSX universal binary
-------------------------------------+-------------------------------------
Reporter: Serguei E. Leontiev | Owner: olli
<leo@â¦> | Status: closed
Type: Bugs | Component: context
Milestone: To Be Determined | Severity: Problem
Version: Boost 1.53.0 | Keywords: mac osx universal
Resolution: fixed | binary
-------------------------------------+-------------------------------------
Comment (by marco.serantoni@â¦):
It is a great idea the FAT binaries, it is not limited to 4, could have
also more than 4 at time.
Theorically could support x86/MIPS/MC98k/ARM/SPARC/POWERPC all together at
expenses of size, i miss this features with /lib /lib64, one file N
architectures ;)
This is done from the compiler usually, that spawns N compiler one for
each "-arch" and assemble all in a single .o or binary.
{{{
KO - x86/32
KO - x86/64
OK - x86/32_64
KO - power/32
KO - power/64 (indicated as x86 in build file)
OK - power/32_64
OK - combined/32
OK - combined/64
OK - combined/32_64
}}}
I've elaborated another patch to fix, you should avoid to use the [make ]
and use the compiler to do the work.
The issue with the x86/32 is referred to the label (probably 'as' doesn't
like a label at the beginning of the row)
Works if passing thru the compiler.
{{{
diff --git a/build/Jamfile.v2 b/build/Jamfile.v2
index 6c2a662..d7b5bde 100644
--- a/build/Jamfile.v2
+++ b/build/Jamfile.v2
@@ -143,8 +143,8 @@ alias asm_context_sources
;
alias asm_context_sources
- : [ make asm/make_ppc32_sysv_macho_gas.o :
asm/make_ppc32_sysv_macho_gas.S : @gas ]
- [ make asm/jump_ppc32_sysv_macho_gas.o :
asm/jump_ppc32_sysv_macho_gas.S : @gas ]
+ : asm/make_ppc32_sysv_macho_gas.S
+ asm/jump_ppc32_sysv_macho_gas.S
: <address-model>32
<architecture>power
<binary-format>mach-o
@@ -169,10 +169,10 @@ alias asm_context_sources
;
alias asm_context_sources
- : [ make asm/make_ppc64_sysv_macho_gas.o :
asm/make_ppc64_sysv_macho_gas.S : @gas ]
- [ make asm/jump_ppc64_sysv_macho_gas.o :
asm/jump_ppc64_sysv_macho_gas.S : @gas ]
+ : asm/make_ppc64_sysv_macho_gas.S
+ asm/jump_ppc64_sysv_macho_gas.S
: <address-model>64
- <architecture>x86
+ <architecture>power
<binary-format>mach-o
<target-os>darwin
;
@@ -224,8 +224,8 @@ alias asm_context_sources
;
alias asm_context_sources
- : [ make asm/make_i386_sysv_macho_gas.o :
asm/make_i386_sysv_macho_gas.S : @gas ]
- [ make asm/jump_i386_sysv_macho_gas.o :
asm/jump_i386_sysv_macho_gas.S : @gas ]
+ : asm/make_i386_sysv_macho_gas.S
+ asm/jump_i386_sysv_macho_gas.S
: <address-model>32
<architecture>x86
<binary-format>mach-o
@@ -261,8 +261,8 @@ alias asm_context_sources
;
alias asm_context_sources
- : [ make asm/make_x86_64_sysv_macho_gas.o :
asm/make_x86_64_sysv_macho_gas.S : @gas ]
- [ make asm/jump_x86_64_sysv_macho_gas.o :
asm/jump_x86_64_sysv_macho_gas.S : @gas ]
+ : asm/make_x86_64_sysv_macho_gas.S
+ asm/jump_x86_64_sysv_macho_gas.S
: <address-model>64
<architecture>x86
<binary-format>mach-o
}}}
Example of error (x86/32)
{{{
mini:boost_develop marco$ ./b2 link=static architecture=x86 address-
model=32 context
Performing configuration checks
- symlinks supported : yes (cached)
- hardlinks supported : yes (cached)
...found 17 targets...
...updating 4 targets...
Jamfile</Users/marco/Development/boost_develop/libs/context/build>.gas
bin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static/asm/make_i386_sysv_macho_gas.o
libs/context/src/asm/make_i386_sysv_macho_gas.S:59:suffix or operands
invalid for `pop'
as -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static/asm/make_i386_sysv_macho_gas.o"
"libs/context/src/asm/make_i386_sysv_macho_gas.S"
...failed
Jamfile</Users/marco/Development/boost_develop/libs/context/build>.gas
bin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static/asm/make_i386_sysv_macho_gas.o...
Jamfile</Users/marco/Development/boost_develop/libs/context/build>.gas
bin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static/asm/jump_i386_sysv_macho_gas.o
libs/context/src/asm/jump_i386_sysv_macho_gas.S:70:suffix or operands
invalid for `jmp'
as -o "bin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static/asm/jump_i386_sysv_macho_gas.o"
"libs/context/src/asm/jump_i386_sysv_macho_gas.S"
...failed
Jamfile</Users/marco/Development/boost_develop/libs/context/build>.gas
bin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static/asm/jump_i386_sysv_macho_gas.o...
...skipped <pbin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static>libboost_context.a(clean) for lack
of <pbin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static>asm/make_i386_sysv_macho_gas.o...
...skipped <pbin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static>libboost_context.a for lack of
<pbin.v2/libs/context/build/darwin-4.2.1/debug/address-
model-32/architecture-x86/link-static>asm/make_i386_sysv_macho_gas.o...
...failed updating 2 targets...
...skipped 2 targets...
}}}
-- Ticket URL: <https://svn.boost.org/trac/boost/ticket/8266#comment:27> Boost C++ Libraries <http://www.boost.org/> Boost provides free peer-reviewed portable C++ source libraries.
This archive was generated by hypermail 2.1.7 : 2017-02-16 18:50:15 UTC