Re: [Boost-bugs] [Boost C++ Libraries] #8266: context library don't compile for Mac OSX universal binary

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