summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Hatle <mark.hatle@xilinx.com>2020-01-24 16:41:09 -0800
committerMark Hatle <mark.hatle@xilinx.com>2020-01-24 16:56:12 -0800
commit7e99d6d01b7b685048b35ac77ea6938ab2708097 (patch)
treeaf1c6a0ab492ef34b0ed98bf3879143647406311
parente93e43e3fdd178584de0167225b48b95fd31ef6b (diff)
downloadmeta-xilinx-7e99d6d01b7b685048b35ac77ea6938ab2708097.tar.gz
binutils/gcc: Refactor the oeconf
The result of the refactoring is equivalent to before the changes, with the following changes: - cortexa72 has been removed - cortexa53 has been replaced with aarch64 - zc702-zynq7 has been replaced with arm - zynqmp-pmu has been replaced with microblaze In order to avoid a multilib cflag collision on arm, clear the TUNE_CCARGS on arm (and cortexr5). Signed-off-by: Mark Hatle <mark.hatle@xilinx.com>
-rw-r--r--meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross-canadian_%.bbappend30
-rw-r--r--meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross_%.bbappend32
-rw-r--r--meta-xilinx-standalone/recipes-standalone/binutils/binutils-xilinx-standalone.inc41
-rw-r--r--meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross-canadian_%.bbappend46
-rw-r--r--meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend41
-rw-r--r--meta-xilinx-standalone/recipes-standalone/gcc/gcc-runtime_%.bbappend52
-rw-r--r--meta-xilinx-standalone/recipes-standalone/gcc/gcc-xilinx-standalone.inc128
7 files changed, 88 insertions, 282 deletions
diff --git a/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross-canadian_%.bbappend b/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross-canadian_%.bbappend
index 1e4d8b02..5ba6039b 100644
--- a/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross-canadian_%.bbappend
+++ b/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross-canadian_%.bbappend
@@ -1,29 +1 @@
1include binutils-xilinx-standalone.inc require binutils-xilinx-standalone.inc
2
3
4# The following is a copy of what is in OE-Core, without LDGOLD, because we have to do gold per machine instead
5EXTRA_OECONF_pn-binutils-cross-canadian-${TARGET_ARCH}_xilinx-standalone = " \
6 --program-prefix=${TARGET_PREFIX} \
7 --disable-werror \
8 --enable-deterministic-archives \
9 --enable-plugins \
10 ${BINUTILS_CONFIGURE_COMMON_XILINX_STANDALONE} \
11"
12
13
14EXTRA_OECONF_pn-binutils-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_cortexa53 = " \
15 ${BINUTILS_CONFIGURE_A53} \
16"
17
18EXTRA_OECONF_pn-binutils-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_cortexa72 = " \
19 ${BINUTILS_CONFIGURE_A72} \
20"
21EXTRA_OECONF_pn-binutils-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_cortexr5 = " \
22 ${BINUTILS_CONFIGURE_R5} \
23"
24EXTRA_OECONF_pn-binutils-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_zynqmp-pmu = " \
25 ${BINUTILS_CONFIGURE_MB} \
26"
27EXTRA_OECONF_pn-binutils-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_zc702-zynq7 = " \
28 ${BINUTILS_CONFIGURE_A9} \
29"
diff --git a/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross_%.bbappend b/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross_%.bbappend
index fd1702e4..5ba6039b 100644
--- a/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross_%.bbappend
+++ b/meta-xilinx-standalone/recipes-standalone/binutils/binutils-cross_%.bbappend
@@ -1,31 +1 @@
1include binutils-xilinx-standalone.inc require binutils-xilinx-standalone.inc
2
3
4# The following is a copy of what is in OE-Core, without LDGOLD, because we have to do gold per machine instead
5EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_xilinx-standalone = " \
6 --program-prefix=${TARGET_PREFIX} \
7 --disable-werror \
8 --enable-deterministic-archives \
9 --enable-plugins \
10 ${BINUTILS_CONFIGURE_COMMON_XILINX_STANDALONE} \
11"
12
13EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_xilinx-standalone_append_cortexa53 = " \
14 ${BINUTILS_CONFIGURE_A53} \
15"
16
17EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_xilinx-standalone_append_cortexa72 = " \
18 ${BINUTILS_CONFIGURE_A72} \
19"
20
21EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_xilinx-standalone_append_cortexr5 = " \
22 ${BINUTILS_CONFIGURE_R5} \
23"
24
25EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_xilinx-standalone_append_zynqmp-pmu = " \
26 ${BINUTILS_CONFIGURE_MB} \
27"
28
29EXTRA_OECONF_pn-binutils-cross-${TARGET_ARCH}_xilinx-standalone_append_zc702-zynq7 = " \
30 ${BINUTILS_CONFIGURE_A9} \
31"
diff --git a/meta-xilinx-standalone/recipes-standalone/binutils/binutils-xilinx-standalone.inc b/meta-xilinx-standalone/recipes-standalone/binutils/binutils-xilinx-standalone.inc
index 4170ee02..ac569736 100644
--- a/meta-xilinx-standalone/recipes-standalone/binutils/binutils-xilinx-standalone.inc
+++ b/meta-xilinx-standalone/recipes-standalone/binutils/binutils-xilinx-standalone.inc
@@ -1,46 +1,19 @@
1# This inc file contains common configuration used for Binutils for several 1LDGOLD_xilinx-standalone = ""
2# MACHINES when using xilinx-standalone a DISTRO. 2LDGOLD_ALTS_xilinx-standalone = ""
3# This should be applicable to both cross and cross-canadian toolchain.
4 3
5BINUTILS_CONFIGURE_COMMON_XILINX_STANDALONE = " \ 4EXTRA_OECONF_append_xilinx-standalone = " \
6 --disable-gdb \
7 --disable-sim \
8"
9
10BINUTILS_CONFIGURE_A53 ?= " \
11 --disable-gprof \
12 --disable-libdecnumber \
13 --disable-readline \
14 --disable-shared \
15 --enable-lto \
16 --enable-static \
17"
18
19BINUTILS_CONFIGURE_A72 ?= " \
20 --disable-gprof \ 5 --disable-gprof \
21 --disable-libdecnumber \
22 --disable-readline \
23 --disable-shared \ 6 --disable-shared \
24 --enable-lto \ 7 --enable-lto \
25 --enable-static \ 8 --enable-static \
9 --enable-multilib \
26" 10"
27 11
28BINUTILS_CONFIGURE_R5 ?= " \ 12# CortexR5 and 32-bit arm are both "arm"
29 --disable-docs \ 13EXTRA_OECONF_append_xilinx-standalone_arm = " \
30 --disable-nls \
31 --enable-interwork \ 14 --enable-interwork \
32" 15"
33 16
34BINUTILS_CONFIGURE_MB ?= " \ 17EXTRA_OECONF_append_xilinx-standalone_microblaze = " \
35 --disable-initfini-array \ 18 --disable-initfini-array \
36 --disable-nls \
37 --enable-gold=no \
38 --enable-ld=yes \
39 --enable-multilib \
40" 19"
41
42BINUTILS_CONFIGURE_A9 ?= " \
43 --disable-docs \
44 --disable-nls \
45 --enable-interwork \
46" \ No newline at end of file
diff --git a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross-canadian_%.bbappend b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross-canadian_%.bbappend
index 9143434a..19862cb9 100644
--- a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross-canadian_%.bbappend
+++ b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross-canadian_%.bbappend
@@ -1,45 +1 @@
1include gcc-xilinx-standalone.inc require gcc-xilinx-standalone.inc
2
3# This is still missing a way to remove infiniarray, if we really have to we could use _remove
4EXTRA_OECONF_pn-gcc-cross-canadian-${TARGET_ARCH}_xilinx-standalone = " \
5 ${GCC_CONFIGURE_COMMON_XILINX_STANDALONE} \
6 --program-prefix=${TARGET_PREFIX} \
7 --without-local-prefix \
8 ${EXTRA_OECONF_PATHS} \
9"
10
11
12# Cortex-A53
13EXTRA_OECONF_pn-gcc-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_cortexa53 = " \
14 ${GCC_CONFIGURE_A53} \
15"
16
17# Cortex-A72
18EXTRA_OECONF_pn-gcc-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_cortexa72 = " \
19 ${GCC_CONFIGURE_A72} \
20"
21
22# Cortex-R5
23EXTRA_OECONF_pn-gcc-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_cortexr5 = " \
24 ${GCC_CONFIGURE_R5} \
25"
26
27# MB
28EXTRA_OECONF_pn-gcc-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_zynqmp-pmu = " \
29 ${GCC_CONFIGURE_MB} \
30"
31
32# Cortex-A9
33EXTRA_OECONF_pn-gcc-cross-canadian-${TARGET_ARCH}_xilinx-standalone_append_zc702-zynq7 = " \
34 ${GCC_CONFIGURE_A9} \
35"
36
37# Temporary hack to build gcc cross canadian for tclibc-newlib as --with-sysroot=/not/exist
38# has been removed from TARGET_OS for elf and eabi in gcc-cross-canadian.inc
39
40python() {
41 extraoeconfgcc = d.getVar('EXTRA_OECONF')
42 extraoeconfgcc += " --with-sysroot=/not/exist"
43 d.delVar('EXTRA_OECONF')
44 d.setVar('EXTRA_OECONF', extraoeconfgcc)
45}
diff --git a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend
index cad0cecc..19862cb9 100644
--- a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend
+++ b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-cross_%.bbappend
@@ -1,40 +1 @@
1include gcc-xilinx-standalone.inc require gcc-xilinx-standalone.inc
2
3
4
5# This is still missing a way to remove infiniarray, if we really have to we could use _remove
6EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_xilinx-standalone = " \
7 ${GCC_CONFIGURE_COMMON_XILINX_STANDALONE} \
8 --program-prefix=${TARGET_PREFIX} \
9 --without-local-prefix \
10 ${EXTRA_OECONF_PATHS} \
11"
12
13
14# --with-multilib-list=aprofile doesnt exist in gcc 8
15
16
17# Cortex-A53
18EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_xilinx-standalone_append_cortexa53 = " \
19 ${GCC_CONFIGURE_A53} \
20"
21
22# Cortex-A72
23EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_xilinx-standalone_append_cortexa72 = " \
24 ${GCC_CONFIGURE_A72} \
25"
26
27# Cortex-R5
28EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_xilinx-standalone_append_cortexr5 = " \
29 ${GCC_CONFIGURE_R5} \
30"
31
32# MB
33EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_xilinx-standalone_append_zynqmp-pmu = " \
34 ${GCC_CONFIGURE_MB} \
35"
36
37# Cortex-A9
38EXTRA_OECONF_pn-gcc-cross-${TARGET_ARCH}_xilinx-standalone_append_zc702-zynq7 = " \
39 ${GCC_CONFIGURE_A9} \
40"
diff --git a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-runtime_%.bbappend b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-runtime_%.bbappend
index ba009a9d..d7531752 100644
--- a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-runtime_%.bbappend
+++ b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-runtime_%.bbappend
@@ -1,16 +1,54 @@
1# Copy of gcc-xilinx-standalone.inc, but with _class-target added
2LINKER_HASH_STYLE_xilinx-standalone_class-target = ""
3SYMVERS_CONF_xilinx-standalone_class-target = ""
4
5EXTRA_OECONF_append_xilinx-standalone_class-target = " \
6 --disable-libstdcxx-pch \
7 --with-newlib \
8 --disable-threads \
9 --enable-plugins \
10 --with-gnu-as \
11 --disable-libitm \
12 --enable-multilib \
13"
14
15EXTRA_OECONF_append_xilinx-standalone_aarch64_class-target = " \
16 --disable-multiarch \
17 --enable-fix-cortex-a53-835769 \
18 --enable-fix-cortex-a53-843419 \
19 --with-arch=armv8-a \
20 "
21
22# Both arm and cortexr5 overrides are set w/ r5
23# So only set rmprofile if r5 is defined.
24ARM_PROFILE = "aprofile"
25ARM_PROFILE_cortexr5 = "rmprofile"
26EXTRA_OECONF_append_xilinx-standalone_arm_class-target = " \
27 --with-multilib-list=${ARM_PROFILE} \
28 "
29
30EXTRA_OECONF_append_xilinx-standalone_cortexr5_class-target = " \
31 --disable-tls \
32 --disable-decimal-float \
33 "
34
35EXTRA_OECONF_append_xilinx-standalone_microblaze_class-target = " \
36 --disable-__cxa_atexit \
37 --enable-target-optspace \
38 --without-long-double-128 \
39 "
40
41# Changes local to gcc-runtime...
42
43# Due to multilibs, we need to clear the default TUNE_CCARGS on arm
44TUNE_CCARGS_xilinx-standalone_arm_class-target = ""
45
1# Configure fails on multilib when using a cache file, this re-sets it to nothing 46# Configure fails on multilib when using a cache file, this re-sets it to nothing
2EXTRA_OECONF_append_xilinx-standalone_class-target = " --cache-file=" 47EXTRA_OECONF_append_xilinx-standalone_class-target = " --cache-file="
3 48
4# Dont build libitm, etc. 49# Dont build libitm, etc.
5RUNTIMETARGET_xilinx-standalone_class-target = "libstdc++-v3" 50RUNTIMETARGET_xilinx-standalone_class-target = "libstdc++-v3"
6 51
7SYMVERS_CONF_xilinx-standalone_class-target =""
8
9
10EXTRA_OECONF_append_xilinx-standalone_class-target = " --enable-multilib --with-newlib"
11EXTRA_OECONF_append_xilinx-standalone_cortexr5_class-target = " --with-multilib-list=rmprofile"
12EXTRA_OECONF_append_xilinx-standalone_zc702-zynq7_class-target = " --with-multilib-list=aprofile"
13
14# Recursve 5 levels due to the several combinations of multilibs built 52# Recursve 5 levels due to the several combinations of multilibs built
15FILES_libstdc++-staticdev_append_xilinx-standalone_class-target = " \ 53FILES_libstdc++-staticdev_append_xilinx-standalone_class-target = " \
16 ${libdir}/libsupc++.a* \ 54 ${libdir}/libsupc++.a* \
diff --git a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-xilinx-standalone.inc b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-xilinx-standalone.inc
index 93d7a86f..83834c18 100644
--- a/meta-xilinx-standalone/recipes-standalone/gcc/gcc-xilinx-standalone.inc
+++ b/meta-xilinx-standalone/recipes-standalone/gcc/gcc-xilinx-standalone.inc
@@ -1,104 +1,40 @@
1# This inc file contains common configuration used for GCC for several 1# Any changes to this file should be synced with gcc-runtime_%.bbappend
2# MACHINES when using xilinx-standalone a DISTRO.
3# This should be applicable to both cross and cross-canadian toolchain.
4 2
3LINKER_HASH_STYLE_xilinx-standalone = ""
4SYMVERS_CONF_xilinx-standalone = ""
5 5
6GCC_CONFIGURE_COMMON_XILINX_STANDALONE = " \ 6EXTRA_OECONF_append_xilinx-standalone = " \
7 --disable-libmudflap \
8 --disable-libstdcxx-pch \ 7 --disable-libstdcxx-pch \
9 --disable-nls \
10 --enable-languages=${LANGUAGES} \
11 --with-newlib \ 8 --with-newlib \
12" 9 --disable-threads \
13 10 --enable-plugins \
14 11 --with-gnu-as \
15GCC_CONFIGURE_A53 ?= " \ 12 --disable-libitm \
16 --disable-bootstrap \
17 --disable-multiarch \
18 --disable-threads \
19 --enable-c99 \
20 --enable-checking=yes \
21 --enable-fix-cortex-a53-835769 \
22 --enable-fix-cortex-a53-843419 \
23 --enable-linker-build-id \
24 --enable-long-long \
25 --enable-lto \
26 --enable-plugins \
27 --enable-shared \
28 --with-arch=armv8-a \
29 --with-cloog=no \
30 --with-gnu-as \
31 --with-gnu-ld \
32 --with-isl=no \
33 --with-ppl=no \
34"
35
36GCC_CONFIGURE_A72 ?= " \
37 --disable-bootstrap \
38 --disable-multiarch \
39 --disable-threads \
40 --enable-c99 \
41 --enable-checking=yes \
42 --enable-linker-build-id \
43 --enable-long-long \
44 --enable-lto \
45 --enable-multilib \ 13 --enable-multilib \
46 --enable-plugins \
47 --enable-shared \
48 --enable-threads=no \
49 --with-cloog=no \
50 --with-gnu-as \
51 --with-gnu-ld \
52 --with-isl=no \
53 --with-ppl=no \
54" 14"
55 15
56GCC_CONFIGURE_R5 ?= " \ 16EXTRA_OECONF_append_xilinx-standalone_aarch64 = " \
57 --disable-decimal-float \
58 --disable-libffi \
59 --disable-libgomp \
60 --disable-libquadmath \
61 --disable-libssp \
62 --disable-shared \
63 --disable-threads \
64 --disable-tls \
65 --enable-plugins \
66 --with-gnu-as \
67 --with-gnu-ld \
68 --with-headers=yes \
69 --with-host-libstdcxx=-static-libgcc \
70 --with-multilib-list=rmprofile \
71"
72
73GCC_CONFIGURE_MB ?= " \
74 --disable-__cxa_atexit \
75 --disable-libgomp \
76 --disable-shared \
77 --enable-lto \
78 --enable-target-optspace \
79 --enable-threads=no \
80 --with-isl=no \
81 --with-ppl=no \
82 --without-long-double-128 \
83"
84
85GCC_CONFIGURE_A9 ?= " \
86 --disable-bootstrap \
87 --disable-multiarch \ 17 --disable-multiarch \
88 --disable-nls \ 18 --enable-fix-cortex-a53-835769 \
89 --disable-threads \ 19 --enable-fix-cortex-a53-843419 \
90 --enable-c99 \ 20 --with-arch=armv8-a \
91 --enable-checking=yes \ 21 "
92 --enable-linker-build-id \ 22
93 --enable-long-long \ 23# Both arm and cortexr5 overrides are set w/ r5
94 --enable-lto \ 24# So only set rmprofile if r5 is defined.
95 --enable-multilib \ 25ARM_PROFILE = "aprofile"
96 --enable-plugins \ 26ARM_PROFILE_cortexr5 = "rmprofile"
97 --enable-shared \ 27EXTRA_OECONF_append_xilinx-standalone_arm = " \
98 --with-cloog=no \ 28 --with-multilib-list=${ARM_PROFILE} \
99 --with-gnu-as \ 29 "
100 --with-gnu-ld \ 30
101 --with-isl=no \ 31EXTRA_OECONF_append_xilinx-standalone_cortexr5 = " \
102 --with-ppl=no \ 32 --disable-tls \
103 --with-multilib-list=aprofile \ 33 --disable-decimal-float \
104" \ No newline at end of file 34 "
35
36EXTRA_OECONF_append_xilinx-standalone_microblaze = " \
37 --disable-__cxa_atexit \
38 --enable-target-optspace \
39 --without-long-double-128 \
40 "