Boost logo

Boost-Build :

Subject: [Boost-build] How do I change the assembler rule?
From: Kuhl, Brian (brian.kuhl_at_[hidden])
Date: 2016-01-22 15:09:37


Hi,
I've added an additional compiler file for Wind River's Diab cross-compiler: boost_1_59_0/tools/src/tools/diab.jam
(I based it on the cray.jam in the same directory)
I can successfully compile most of boost with only a handful odd compiler issues.

But the assembler rule is all wrong, and I need to override it successfully compile "context", the correct tool string is available in the shell as $(AR),
but I'm not sure how to write the jam syntax to propagate that, and override the default that seems to be coming from gcc.jam?

(Not sure why "context" is being built when the little summary says it won't be, but that's a separate issue?)

Brian Kuhl
Manager - Information Development
Wind River

source ./vxworks_env.sh && \
./b2 install -j4 --prefix=/opt/vx7/workspace/PowerPC_VSB/usr/root --libdir=/opt/vx7/workspace/PowerPC_VSB/usr/lib/common --includedir=/opt/vx7/workspace/PowerPC_VSB/usr/h/public \
                  link=static runtime-link=static toolset=diab-vxworks target-os=vxworks \
                  --with-atomic --with-chrono --with-coroutine --with-date_time --with-exception --with-filesystem --with-graph --with-iostreams --with-math --with-program_options --with-random --with-regex --with-serialization --with-system --with-thread --with-timer --with-test
Performing configuration checks
    - 32-bit : no (cached)
    - 64-bit : yes (cached)
    - arm : no (cached)
    - mips1 : no (cached)
    - power : yes (cached)
    - symlinks supported : yes (cached)
    - lockfree boost::atomic_flag : no (cached)
    - has_icu builds : no (cached)
    - zlib : yes (cached)
    - gcc visibility : no (cached)
    - long double support : yes (cached)
Component configuration:
    - atomic : building
    - chrono : building
    - container : not building
    - context : not building
    - coroutine : building
    - coroutine2 : not building
    - date_time : building
    - exception : building
    - filesystem : building
    - graph : building
    - graph_parallel : not building
    - iostreams : building
    - locale : not building
    - log : not building
    - math : building
    - mpi : not building
    - program_options : building
    - python : not building
    - random : building
    - regex : building
    - serialization : building
    - signals : not building
    - system : building
    - test : building
    - thread : building
    - timer : building
    - wave : not building
...patience...
...patience...
...patience...
...patience...
...found 28712 targets...
...updating 4 targets...
Jamfile</opt/vx7/workspace/PowerPC_VSB/usr/src/BOOST/boost_1_59_0/libs/context/build>.gas64 bin.v2/libs/context/build/diab-vxworks/release/link-static/runtime-link-static/target-os-vxworks/threading-multi/asm/make_ppc64_sysv_elf_gas.o
libs/context/src/asm/make_ppc64_sysv_elf_gas.S: Assembler messages:
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:101: Error: alignment not a power of 2
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:112: Error: junk at end of line, first unrecognized character is `@'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:121: Error: no such instruction: `mflr %r6'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:125: Error: no such instruction: `clrrdi %r3,%r3,4'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:129: Error: no such instruction: `subi %r3,%r3,392'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:138: Error: no such instruction: `ld %r4,0(%r5)'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:139: Error: bad register name `%r4'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:141: Error: no such instruction: `ld %r4,8(%r5)'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:142: Error: bad register name `%r4'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:146: Error: no such instruction: `mflr %r0'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:148: Error: no such instruction: `bl 1f'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:151: Error: no such instruction: `mflr %r4'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:153: Error: no such instruction: `addi %r4,%r4,finish - 1b'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:155: Error: no such instruction: `mtlr %r0'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:158: Error: bad register name `%r4'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:161: Error: no such instruction: `mtlr %r6'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:163: Error: no such instruction: `blr '
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:167: Error: no such instruction: `mflr %r0'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:169: Error: bad register name `%r0'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:171: Error: no such instruction: `stdu %r1,-32(%r1)'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:174: Error: no such instruction: `li %r3,0'
libs/context/src/asm/make_ppc64_sysv_elf_gas.S:176: Error: no such instruction: `bl _exit'
    cpp -x assembler-with-cpp "libs/context/src/asm/make_ppc64_sysv_elf_gas.S" | as --64 -o "bin.v2/libs/context/build/diab-vxworks/release/link-static/runtime-link-static/target-os-vxworks/threading-multi/asm/make_ppc64_sysv_elf_gas.o"
...failed Jamfile</opt/vx7/workspace/PowerPC_VSB/usr/src/BOOST/boost_1_59_0/libs/context/build>.gas64 bin.v2/libs/context/build/diab-vxworks/release/link-static/runtime-link-static/target-os-vxworks/threading-multi/asm/make_ppc64_sysv_elf_gas.o...
Jamfile</opt/vx7/workspace/PowerPC_VSB/usr/src/BOOST/boost_1_59_0/libs/context/build>.gas64 bin.v2/libs/context/build/diab-vxworks/release/link-static/runtime-link-static/target-os-vxworks/threading-multi/asm/jump_ppc64_sysv_elf_gas.o
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S: Assembler messages:
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:101: Error: alignment not a power of 2
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:112: Error: junk at end of line, first unrecognized character is `@'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:121: Error: no such instruction: `subi %r1,%r1,328'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:124: Error: bad register name `%r2'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:126: Error: bad register name `%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:127: Error: bad register name `%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:128: Error: bad register name `%r16'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:129: Error: bad register name `%r17'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:130: Error: bad register name `%r18'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:131: Error: bad register name `%r19'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:132: Error: bad register name `%r20'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:133: Error: bad register name `%r21'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:134: Error: bad register name `%r22'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:135: Error: bad register name `%r23'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:136: Error: bad register name `%r24'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:137: Error: bad register name `%r25'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:138: Error: bad register name `%r26'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:139: Error: bad register name `%r27'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:140: Error: bad register name `%r28'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:141: Error: bad register name `%r29'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:142: Error: bad register name `%r30'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:143: Error: bad register name `%r31'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:146: Error: no such instruction: `mfcr %r0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:147: Error: bad register name `%r0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:149: Error: no such instruction: `mflr %r0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:150: Error: bad register name `%r0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:152: Error: bad register name `%r0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:155: Error: no such instruction: `cmpwi cr7,%r6,0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:156: Error: no such instruction: `beq cr7,1f'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:158: Error: no such instruction: `stfd %f14,0(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:159: Error: no such instruction: `stfd %f15,8(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:160: Error: no such instruction: `stfd %f16,16(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:161: Error: no such instruction: `stfd %f17,24(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:162: Error: no such instruction: `stfd %f18,32(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:163: Error: no such instruction: `stfd %f19,40(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:164: Error: no such instruction: `stfd %f20,48(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:165: Error: no such instruction: `stfd %f21,56(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:166: Error: no such instruction: `stfd %f22,64(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:167: Error: no such instruction: `stfd %f23,72(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:168: Error: no such instruction: `stfd %f24,80(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:169: Error: no such instruction: `stfd %f25,88(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:170: Error: no such instruction: `stfd %f26,96(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:171: Error: no such instruction: `stfd %f27,104(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:172: Error: no such instruction: `stfd %f28,112(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:173: Error: no such instruction: `stfd %f29,120(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:174: Error: no such instruction: `stfd %f30,128(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:175: Error: no such instruction: `stfd %f31,136(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:176: Error: no such instruction: `mffs %f0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:177: Error: no such instruction: `stfd %f0,144(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:181: Error: bad register name `%r1'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:184: Error: no such instruction: `mr %r1,%r4'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:187: Error: no such instruction: `cmpwi cr7,%r6,0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:188: Error: no such instruction: `beq cr7,2f'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:190: Error: no such instruction: `lfd %f14,0(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:191: Error: no such instruction: `lfd %f15,8(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:192: Error: no such instruction: `lfd %f16,16(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:193: Error: no such instruction: `lfd %f17,24(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:194: Error: no such instruction: `lfd %f18,32(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:195: Error: no such instruction: `lfd %f19,40(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:196: Error: no such instruction: `lfd %f20,48(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:197: Error: no such instruction: `lfd %f21,56(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:198: Error: no such instruction: `lfd %f22,64(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:199: Error: no such instruction: `lfd %f23,72(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:200: Error: no such instruction: `lfd %f24,80(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:201: Error: no such instruction: `lfd %f25,88(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:202: Error: no such instruction: `lfd %f26,96(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:203: Error: no such instruction: `lfd %f27,104(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:204: Error: no such instruction: `lfd %f28,112(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:205: Error: no such instruction: `lfd %f29,120(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:206: Error: no such instruction: `lfd %f30,128(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:207: Error: no such instruction: `lfd %f31,136(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:208: Error: no such instruction: `lfd %f0,144(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:209: Error: no such instruction: `mtfsf 0xff,%f0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:213: Error: no such instruction: `ld %r2,152(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:215: Error: no such instruction: `ld %r14,160(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:216: Error: no such instruction: `ld %r15,168(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:217: Error: no such instruction: `ld %r16,176(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:218: Error: no such instruction: `ld %r17,184(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:219: Error: no such instruction: `ld %r18,192(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:220: Error: no such instruction: `ld %r19,200(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:221: Error: no such instruction: `ld %r20,208(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:222: Error: no such instruction: `ld %r21,216(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:223: Error: no such instruction: `ld %r22,224(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:224: Error: no such instruction: `ld %r23,232(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:225: Error: no such instruction: `ld %r24,240(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:226: Error: no such instruction: `ld %r25,248(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:227: Error: no such instruction: `ld %r26,256(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:228: Error: no such instruction: `ld %r27,264(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:229: Error: no such instruction: `ld %r28,272(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:230: Error: no such instruction: `ld %r29,280(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:231: Error: no such instruction: `ld %r30,288(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:232: Error: no such instruction: `ld %r31,296(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:235: Error: no such instruction: `ld %r0,304(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:236: Error: no such instruction: `mtcr %r0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:238: Error: no such instruction: `ld %r0,312(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:239: Error: no such instruction: `mtlr %r0'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:242: Error: no such instruction: `ld %r12,320(%r1)'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:244: Error: no such instruction: `mtctr %r12'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:247: Error: no such instruction: `addi %r1,%r1,328'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:251: Error: no such instruction: `mr %r3,%r5'
libs/context/src/asm/jump_ppc64_sysv_elf_gas.S:254: Error: no such instruction: `bctr'
    cpp -x assembler-with-cpp "libs/context/src/asm/jump_ppc64_sysv_elf_gas.S" | as --64 -o "bin.v2/libs/context/build/diab-vxworks/release/link-static/runtime-link-static/target-os-vxworks/threading-multi/asm/jump_ppc64_sysv_elf_gas.o"
...failed Jamfile</opt/vx7/workspace/PowerPC_VSB/usr/src/BOOST/boost_1_59_0/libs/context/build>.gas64 bin.v2/libs/context/build/diab-vxworks/release/link-static/runtime-link-static/target-os-vxworks/threading-multi/asm/jump_ppc64_sysv_elf_gas.o...
...skipped <pbin.v2/libs/context/build/diab-vxworks/release/link-static/runtime-link-static/target-os-vxworks/threading-multi>libboost_context.a for lack of <pbin.v2/libs/context/build/diab-vxworks/release/link-static/runtime-link-static/target-os-vxworks/threading-multi>asm/make_ppc64_sysv_elf_gas.o...
...skipped <p/opt/vx7/workspace/PowerPC_VSB/usr/lib/common>libboost_context.a for lack of <pbin.v2/libs/context/build/diab-vxworks/release/link-static/runtime-link-static/target-os-vxworks/threading-multi>libboost_context.a...
...failed updating 2 targets...
...skipped 2 targets...



Boost-Build list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk