public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* libitm.a and sjlj.o object
@ 2013-09-12 10:22 Víctor Martínez
  2013-09-20 15:20 ` Richard Henderson
  0 siblings, 1 reply; 3+ messages in thread
From: Víctor Martínez @ 2013-09-12 10:22 UTC (permalink / raw)
  To: gcc

Hello all,
I have a doubt related to libitm.a and its objects. I hope this is the 
right place to ask and get something clear.

We are crosscompiling gcc (4.7.3) for ARM using own crosstools built 
from scratch.
This is the output from our current gcc built in our toolchain used to 
rebuild gcc again:

$ ./crosstools/bin/arm-crux-linux-gnueabihf-gcc -v
Using built-in specs.
COLLECT_GCC=./crosstools/bin/arm-crux-linux-gnueabihf-gcc
COLLECT_LTO_WRAPPER=/des/crux-arm/3.0/toolchain_log/crosstools/libexec/gcc/arm-crux-linux-gnueabihf/4.7.3/lto-wrapper
Target: arm-crux-linux-gnueabihf
Configured with: 
/des/crux-arm/3.0/toolchain_log/work/gcc-4.7.3/configure 
--prefix=/des/crux-arm/3.0/toolchain_log/crosstools 
--build=x86_64-cross-linux-gnu --host=x86_64-cross-linux-gnu 
--target=arm-crux-linux-gnueabihf 
--with-headers=/des/crux-arm/3.0/toolchain_log/clfs/usr/include 
--enable-shared --disable-multilib 
--with-sysroot=/des/crux-arm/3.0/toolchain_log/clfs --disable-nls 
--enable-languages=c,c++ --enable-__cxa_atexit --enable-threads=posix 
--disable-libstdcxx-pch --disable-bootstrap --disable-libgomp 
--with-mpfr=/des/crux-arm/3.0/toolchain_log/crosstools 
--with-gmp=/des/crux-arm/3.0/toolchain_log/crosstools 
--with-mpc=/des/crux-arm/3.0/toolchain_log/crosstools 
--with-abi=aapcs-linux --with-mode=arm --with-float=hard
Thread model: posix
gcc version 4.7.3 (GCC)

When we create the crosstools, libitm.a isn't created, but when we 
rebuild gcc again with this crosstools and this options:
../gcc-4.7.3/configure --build=x86_64-unknown-linux-gnu 
--host=arm-crux-linux-gnueabihf --target=arm-crux-linux-gnueabihf 
--prefix=/usr --mandir=/usr/man --libexecdir=/usr/lib 
--enable-languages=c,c++ --disable-libstdcxx-pch --enable-threads=posix 
--enable-__cxa_atexit --enable-clocale=gnu --enable-shared 
--with-float=hard --disable-nls --with-x=no --with-system-zlib 
--with-pkgversion=CRUX-ARM

libitm.a is built and its objects are these:

$ readelf -A work/pkg/usr/lib/libitm.a

File: work/pkg/usr/lib/libitm.a(aatree.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(alloc.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(alloc_c.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(alloc_cpp.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(barrier.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(beginend.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(clone.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(eh_cpp.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(local.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(query.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(retry.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(rwlock.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(useraction.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(util.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(sjlj.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_arch: v4
   Tag_ARM_ISA_use: Yes

File: work/pkg/usr/lib/libitm.a(tls.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(method-serial.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(method-gl.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(method-ml.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(hwcap.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

File: work/pkg/usr/lib/libitm.a(futex.o)
Attribute Section: aeabi
File Attributes
   Tag_CPU_name: "ARM10TDMI"
   Tag_CPU_arch: v5T
   Tag_ARM_ISA_use: Yes
   Tag_THUMB_ISA_use: Thumb-1
   Tag_FP_arch: VFPv2
   Tag_ABI_PCS_wchar_t: 4
   Tag_ABI_FP_denormal: Needed
   Tag_ABI_FP_exceptions: Needed
   Tag_ABI_FP_number_model: IEEE 754
   Tag_ABI_align_needed: 8-byte
   Tag_ABI_align_preserved: 8-byte, except leaf SP
   Tag_ABI_enum_size: int
   Tag_ABI_HardFP_use: SP and DP
   Tag_ABI_VFP_args: VFP registers
   Tag_ABI_optimization_goals: Aggressive Speed

Why is sjlj.o the only one built for armv4 while the rest of objects are 
armv5t?
Is this behaviour expected? Or is there something wrong trying to 
configure gcc with these options?

I hope someone can take a look to this and clarify this doubt.
Thanks in advance.

Regards, Victor.

-- 
Learning bit by bit
Víctor Martínez | http://lokalix.dyndns.org

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: libitm.a and sjlj.o object
  2013-09-12 10:22 libitm.a and sjlj.o object Víctor Martínez
@ 2013-09-20 15:20 ` Richard Henderson
  2013-09-20 16:27   ` Victor Martinez
  0 siblings, 1 reply; 3+ messages in thread
From: Richard Henderson @ 2013-09-20 15:20 UTC (permalink / raw)
  To: Víctor Martínez; +Cc: gcc

On 09/12/2013 03:22 AM, Víctor Martínez wrote:
> Why is sjlj.o the only one built for armv4 while the rest of objects are armv5t?
> Is this behaviour expected? Or is there something wrong trying to configure gcc
> with these options?

There are co-processor instructions in there that can't be encoded with thumb1,
as present on armv5t.  It is as expected.


r~

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: libitm.a and sjlj.o object
  2013-09-20 15:20 ` Richard Henderson
@ 2013-09-20 16:27   ` Victor Martinez
  0 siblings, 0 replies; 3+ messages in thread
From: Victor Martinez @ 2013-09-20 16:27 UTC (permalink / raw)
  To: Richard Henderson; +Cc: gcc

On 09/20/13 17:20, Richard Henderson wrote:
> On 09/12/2013 03:22 AM, Víctor Martínez wrote:
>> Why is sjlj.o the only one built for armv4 while the rest of objects are armv5t?
>> Is this behaviour expected? Or is there something wrong trying to configure gcc
>> with these options?
> There are co-processor instructions in there that can't be encoded with thumb1,
> as present on armv5t.  It is as expected.
>
>
> r~
Thank you very much for the clarification.

-- 
Learning bit by bit
Victor Martinez | http://lokalix.dyndns.org

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-09-20 16:27 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-09-12 10:22 libitm.a and sjlj.o object Víctor Martínez
2013-09-20 15:20 ` Richard Henderson
2013-09-20 16:27   ` Victor Martinez

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).