crosstool-ng/scripts/build
Dima Krasner de0d1dbe02 Resepct CT_TARGET_{C,LD}FLAGS when building musl
I was trying to build static binaries for a range of Broadcom soft-float ARMv7
SoCs and kept getting SIGILL, although I was targeting Cortex A7 (and A5,
later), even on A9 and A15.

I found out that once I add -msoft-float, +mp+sec is to blame:

   Attribute Section: aeabi
   File Attributes
  -  Tag_CPU_name: "7VE"
  +  Tag_CPU_name: "7"
     Tag_CPU_arch: v7
  -  Tag_CPU_arch_profile: Application
  -  Tag_ARM_ISA_use: Yes
     Tag_THUMB_ISA_use: Thumb-2
     Tag_ABI_PCS_wchar_t: 4
     Tag_ABI_FP_rounding: Needed
  @@ -12,8 +10,5 @@ File Attributes
     Tag_ABI_FP_number_model: IEEE 754
     Tag_ABI_align_needed: 8-byte
     Tag_ABI_enum_size: int
     Tag_ABI_optimization_goals: Aggressive Size
     Tag_CPU_unaligned_access: v6
  -  Tag_MPextension_use: Allowed
  -  Tag_DIV_use: Allowed in v7-A with integer division extension
  -  Tag_Virtualization_use: TrustZone and Virtualization Extensions

(This is the readelf -A diff, before and after armv7-a+nofp -> armv7+nofp).

I kept getting SIGILL even after building my application with a toolchain built
with the correct CFLAGS and found out that crosstool-ng doesn't pass the host
CFLAGS when building musl, which pollutes my binary with these ARMv7 extensions.

Signed-off-by: Dima Krasner <dima@dimakrasner.com>
2019-12-04 16:55:20 +02:00
..
arch Add config flags for omitting 'arch' and 'vendor' 2018-12-10 01:10:01 -08:00
binutils Rename JOBSFLAGS -> CT_JOBSFLAGS 2019-04-04 18:57:42 -07:00
cc Rename JOBSFLAGS -> CT_JOBSFLAGS 2019-04-04 18:57:42 -07:00
companion_libs Rename JOBSFLAGS -> CT_JOBSFLAGS 2019-04-04 18:57:42 -07:00
companion_tools Meet our new companion tool, bison 2019-03-04 00:22:02 -08:00
debug Rename JOBSFLAGS -> CT_JOBSFLAGS 2019-04-04 18:57:42 -07:00
kernel Add support for noMMU xtensa 2019-03-23 11:09:43 -07:00
libc Resepct CT_TARGET_{C,LD}FLAGS when building musl 2019-12-04 16:55:20 +02:00
test_suite Fix the references to old config variables 2017-07-08 10:57:56 -07:00
arch.sh Add config flags for omitting 'arch' and 'vendor' 2018-12-10 01:10:01 -08:00
companion_libs.sh Build companion libs for target. 2015-11-13 10:24:22 -08:00
companion_tools.sh Some locations were missed while renaming kconfig symbols 2017-07-08 10:57:57 -07:00
debug.sh Some locations were missed while renaming kconfig symbols 2017-07-08 10:57:57 -07:00
internals.sh build/internals.sh: Handle pie executables 2019-09-14 22:21:11 +12:00
libc.sh Use "package ksym" when fetching/extracting 2018-12-14 18:50:51 -08:00
test_suite.sh Some locations were missed while renaming kconfig symbols 2017-07-08 10:57:57 -07:00