Hi Tristan,

The failure to build the context library does not necessarily prevent other libraries from building.
If you are not specifically interested in using the context library, I think you can remove references to it from the build or ignore the failure.
As for your workaround, is the command being used still referring to the ELF assembly?

-- HT

Hubert S. K. Tong
IBM Canada Ltd
8200 Warden Ave, Markham ON  L6G 1C7
Canada


Inactive hide details for Tristan Delhalle ---18-11-2013 05:13:20 AM---Hi, i am trying to build boost 1.55 with IBM XL C/C++ foTristan Delhalle ---18-11-2013 05:13:20 AM---Hi, i am trying to build boost 1.55 with IBM XL C/C++ for AIX, V12.1.

From: Tristan Delhalle <Tristan.Delhalle@ext.bull.net>
To: "boost-build@lists.boost.org" <boost-build@lists.boost.org>,
Date: 18-11-2013 05:13 AM
Subject: [Boost-build] Boost context with IBM XL C/C++
Sent by: "Boost-build" <boost-build-bounces@lists.boost.org>





Hi,
i am trying to build boost 1.55 with IBM XL C/C++ for AIX, V12.1.
 
1) As far as i understand, the context library must be build (even if --without-context), and the assembly code for PPC/XCOFF does not exist. Is that right ?
2) I encountered "invalid opcode or pseudo-op/Error In Syntax/Invalid relocation type: plt/..." because XLC do not understand ELF pseudocode. I am trying to patch 64bit/libs/context/build/Jamfile.v2" without succeded. Any hint for that?
 
Thanks for replies.
 
Tristan
 
 
Index: 64bit/libs/context/build/Jamfile.v2
===================================================================
--- 64bit.orig/libs/context/build/Jamfile.v2        2013-10-04 13:07:50.000000000 +0200
+++ 64bit/libs/context/build/Jamfile.v2              2013-10-04 17:09:56.000000000 +0200
@@ -27,6 +27,7 @@
     local tmp = elf ;
     if [ os.name ] = "MACOSX" { tmp = mach-o ; }
     if [ os.name ] = "NT" { tmp = pe ; }
+    if [ os.name ] = "AIX" { tmp = xcoff ; }
     return $(tmp) ;
}
@@ -34,6 +35,7 @@
    : elf
      mach-o
      pe
+     xcoff
    : propagated
    ;
feature.set-default binary-format : [ default_binary_format ] ;
@@ -163,56 +165,56 @@
 # POWERPC
alias asm_context_sources
-   : asm/make_ppc32_sysv_elf_gas.S
-     asm/jump_ppc32_sysv_elf_gas.S
+   : asm/make_ppc32_sysv_xcoff_gas.S
+     asm/jump_ppc32_sysv_xcoff_gas.S
    : <address-model>32
      <architecture>power
-     <binary-format>elf
+     <binary-format>xcoff
      <toolset>gcc
    ;
 alias asm_context_sources
-   : asm/make_ppc32_sysv_elf_gas.S
-     asm/jump_ppc32_sysv_elf_gas.S
+   : asm/make_ppc32_sysv_xcoff_gas.S
+     asm/jump_ppc32_sysv_xcoff_gas.S
    : <address-model>32
      <architecture>power
-     <binary-format>elf
+     <binary-format>xcoff
      <toolset>qcc
    ;
 alias asm_context_sources
-   : [ make asm/make_ppc32_sysv_elf_gas.o : asm/make_ppc32_sysv_elf_gas.S : @gas ]
-     [ make asm/jump_ppc32_sysv_elf_gas.o : asm/jump_ppc32_sysv_elf_gas.S : @gas ]
+   : [ make asm/make_ppc32_sysv_xcoff_gas.o : asm/make_ppc32_sysv_xcoff_gas.S : @gas ]
+     [ make asm/jump_ppc32_sysv_xcoff_gas.o : asm/jump_ppc32_sysv_xcoff_gas.S : @gas ]
    : <address-model>32
      <architecture>power
-     <binary-format>elf
+     <binary-format>xcoff
    ;
 # POWERPC_64
alias asm_context_sources
-   : asm/make_ppc64_sysv_elf_gas.S
-     asm/jump_ppc64_sysv_elf_gas.S
+   : asm/make_ppc64_sysv_xcoff_gas.S
+     asm/jump_ppc64_sysv_xcoff_gas.S
    : <address-model>64
      <architecture>power
-     <binary-format>elf
+     <binary-format>xcoff
      <toolset>gcc
    ;
 alias asm_context_sources
-   : asm/make_ppc64_sysv_elf_gas.S
-     asm/jump_ppc64_sysv_elf_gas.S
+   : asm/make_ppc64_sysv_xcoff_gas.S
+     asm/jump_ppc64_sysv_xcoff_gas.S
    : <address-model>64
      <architecture>power
-     <binary-format>elf
+     <binary-format>xcoff
      <toolset>qcc
    ;
 alias asm_context_sources
-   : [ make asm/make_ppc64_sysv_elf_gas.o : asm/make_ppc64_sysv_elf_gas.S : @gas ]
-     [ make asm/jump_ppc64_sysv_elf_gas.o : asm/jump_ppc64_sysv_elf_gas.S : @gas ]
+   : [ make asm/make_ppc64_sysv_xcoff_gas.o : asm/make_ppc64_sysv_xcoff_gas.S : @gas ]
+     [ make asm/jump_ppc64_sysv_xcoff_gas.o : asm/jump_ppc64_sysv_xcoff_gas.S : @gas ]
    : <address-model>64
      <architecture>power
-     <binary-format>elf
+     <binary-format>xcoff
    ;
 # SPARC
 
--- boost_1_55_0/libs/context/src/asm/jump_ppc32_sysv_elf_gas.S 2013-07-26 17:24:15 +0200
+++ jump_ppc32_sysv_xcoff_gas.S  2013-11-18 10:20:17 +0100
@@ -67,10 +67,10 @@
  * *****************************************************************/
 .text
-.globl jump_fcontext
+.globl _jump_fcontext
.align 2
-.type jump_fcontext,@function
-jump_fcontext:
+.def _jump_fcontext; .scl 2; .type 32; .endef
+_jump_fcontext:
     stw     %r13,  0(%r3)       # save R13
     stw     %r14,  4(%r3)       # save R14
     stw     %r15,  8(%r3)       # save R15
@@ -177,7 +177,4 @@
     mtctr   %r0                 # restore CTR
     bctr                        # jump to context
-.size jump_fcontext, .-jump_fcontext
-/* Mark that we don't need executable stack.  */
-.section .note.GNU-stack,"",%progbits
 
--- boost_1_55_0/libs/context/src/asm/jump_ppc64_sysv_elf_gas.S 2013-07-26 17:24:15 +0200
+++ jump_ppc64_sysv_xcoff_gas.S  2013-11-18 10:20:17 +0100
@@ -80,18 +80,12 @@
  *                                                                 *
  * *****************************************************************/
-.section ".text"
+.section .text
.align 2
-.globl jump_fcontext
-.section ".opd","aw"
-.align 3
-jump_fcontext:
-.quad .jump_fcontext,.TOC.@tocbase,0
-.previous
-.size jump_fcontext,24
-.type .jump_fcontext,@function
-.globl .jump_fcontext
-.jump_fcontext:
+.globl _jump_fcontext
+.def ._jump_fcontext; .scl 2; .type 32; .endef
+.globl ._jump_fcontext
+._jump_fcontext:
     std     %r13,  0(%r3)       # save R13
     std     %r14,  8(%r3)       # save R14
     std     %r15,  16(%r3)      # save R15
@@ -198,7 +192,4 @@
     mtctr   %r0                 # restore CTR
     bctr                        # jump to context
-.size .jump_fcontext, .-.jump_fcontext
-/* Mark that we don't need executable stack.  */
-.section .note.GNU-stack,"",%progbits
 
 
--- boost_1_55_0/libs/context/src/asm/make_ppc32_sysv_elf_gas.S 2013-07-26 17:24:15 +0200
+++ make_ppc32_sysv_xcoff_gas.S  2013-11-18 10:20:17 +0100
@@ -67,10 +67,10 @@
  * *****************************************************************/
 .text
-.globl make_fcontext
+.globl _make_fcontext
.align 2
-.type make_fcontext,@function
-make_fcontext:
+.def _make_fcontext; .scl 2; .type 32; .endef
+_make_fcontext:
     mflr    %r6                 # save return address into R6
     mr      %r0, %r3
@@ -107,8 +107,4 @@
     stwu    %r1, -16(%r1)       # allocate stack space, SP % 16 == 0
     li      %r3,  0             # exit code is zero
-    bl      _exit@plt           # exit application
-.size make_fcontext, .-make_fcontext
-
-/* Mark that we don't need executable stack.  */
-.section .note.GNU-stack,"",%progbits
+    bl      _exit               # exit application @plt
 
--- boost_1_55_0/libs/context/src/asm/make_ppc64_sysv_elf_gas.S 2013-07-26 17:24:15 +0200
+++ make_ppc64_sysv_xcoff_gas.S  2013-11-18 10:20:17 +0100
@@ -80,18 +80,12 @@
  *                                                                 *
  * *****************************************************************/
-.section ".text"
+.section .text
.align 2
-.globl make_fcontext
-.section ".opd","aw"
-.align 3
-make_fcontext:
-.quad .make_fcontext,.TOC.@tocbase,0
-.previous
-.size make_fcontext,24
-.type .make_fcontext,@function
-.globl .make_fcontext
-.make_fcontext:
+.globl _make_fcontext
+.def ._make_fcontext; .scl 2; .type 32; .endef
+.globl ._make_fcontext
+._make_fcontext:
     mflr    %r6                 # save return address into R6
     mr      %r0, %r3
@@ -130,7 +124,4 @@
     li      %r3,  0             # set return value to zero
     bl      _exit               # exit application
     nop
-.size .make_fcontext, .-.make_fcontext
-/* Mark that we don't need executable stack.  */
-.section .note.GNU-stack,"",%progbits_______________________________________________
Unsubscribe & other changes:
http://lists.boost.org/mailman/listinfo.cgi/boost-build