[Boost-bugs] [Boost C++ Libraries] #9772: [libs/context] make_i386_sysv_elf_gas.S:52: Error: invalid instruction suffix for `pop'

Subject: [Boost-bugs] [Boost C++ Libraries] #9772: [libs/context] make_i386_sysv_elf_gas.S:52: Error: invalid instruction suffix for `pop'
From: Boost C++ Libraries (noreply_at_[hidden])
Date: 2014-03-12 19:57:59


#9772: [libs/context] make_i386_sysv_elf_gas.S:52: Error: invalid instruction
suffix for `pop'
-------------------------------------+------------------------
 Reporter: ad@… | Owner: olli
     Type: Bugs | Status: new
Milestone: To Be Determined | Component: context
  Version: Boost Development Trunk | Severity: Regression
 Keywords: |
-------------------------------------+------------------------
 Since you moves the develop repo to git I don't really know where to
 create this ticket so I make it here ad it is linked in the Wiki page, and
 I made it here aswell in the github submodule page:
 https://github.com/boostorg/context/issues/1

 Issue:
 I fail to crosscompile the git 1.56 develop while it works on the 1.55
 from a windows host targeting linux
 Compiling the 64-bit lib also worked, I think it is affecting only the
 linux target with address-model=32 (a similar issue I got with OSX32_64
 and 1.55 that I think you have fixed, but now occurs for me on linux32 and
 1.56)

 Command used:
 {{{
 b2 -j1 -d2 -q toolset=gcc variant=release abi=sysv address-model=32
 binary-format=elf link=static,shared pch=off strip=on target-os=linux
 threading=multi threadapi=pthread cxxflags="-w -m32" linkflags="-w -m32"
 --stagedir=stage32 --with-context
 }}}

 1.56 returns
 {{{
 Jamfile<X:\libs\boost-dev\libs\context\build>.gas
 bin.v2\libs\context\build\gcc-4.8.2\release\abi-sysv\address-
 model-32\architecture-x86\binary-format-elf\link-static\pch-off\strip-on
 \target-os-linux\threadap
 i-pthread\threading-multi\asm\make_i386_sysv_elf_gas.o

     cpp -x assembler-with-cpp
 "libs\context\src\asm\make_i386_sysv_elf_gas.S" | as -am -o
 "bin.v2\libs\context\build\gcc-4.8.2\release\abi-sysv\address-
 model-32\architecture-x86\binary-format-elf\link-static\
 pch-off\strip-on\target-os-linux\threadapi-pthread\threading-
 multi\asm\make_i386_sysv_elf_gas.o"

 libs\context\src\asm\make_i386_sysv_elf_gas.S: Assembler messages:
 libs\context\src\asm\make_i386_sysv_elf_gas.S:52: Error: invalid
 instruction suffix for `pop'
 libs\context\src\asm\make_i386_sysv_elf_gas.S:64: Error: invalid
 instruction suffix for `pop'
 ...failed Jamfile<X:\libs\boost-dev\libs\context\build>.gas
 bin.v2\libs\context\build\gcc-4.8.2\release\abi-sysv\address-
 model-32\architecture-x86\binary-format-elf\link-static\pch-off\strip-on
 \target-os-linu
 x\threadapi-pthread\threading-multi\asm\make_i386_sysv_elf_gas.o...
 ...failed updating 1 target...
 ...updated 23 targets...
 }}}

 1.55 final returns success

 As a workaround I'm changing

 {{{
 cpp -x assembler-with-cpp "$(>)" | as -am -o "$(<)"
 }}}

 to

 {{{
 cpp -x assembler-with-cpp "$(>)" | as --32 -am -o "$(<)"
 }}}

 But I'm unsure if that's the right thing to do in my case, at least it
 compiles fine 32bit with this

-- 
Ticket URL: <https://svn.boost.org/trac/boost/ticket/9772>
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