mirror of
https://github.com/crosstool-ng/crosstool-ng.git
synced 2024-12-19 04:47:52 +00:00
Merge pull request #823 from stilor/sh-experiment-multilib
Better SuperH multilib support (different endian, glibc/uClibc for no-FPU, etc)
This commit is contained in:
commit
f994d1c7d7
@ -5,7 +5,7 @@
|
||||
## select ARCH_DEFAULT_32
|
||||
## select ARCH_SUPPORTS_BOTH_MMU
|
||||
## select ARCH_DEFAULT_HAS_MMU
|
||||
## select ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
## select ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
## select ARCH_DEFAULT_LE
|
||||
## select ARCH_SUPPORTS_WITH_ARCH
|
||||
## select ARCH_SUPPORTS_WITH_CPU
|
||||
|
@ -2,9 +2,9 @@
|
||||
|
||||
## depends on EXPERIMENTAL
|
||||
##
|
||||
## select ARCH_SUPPORT_ARCH
|
||||
## select ARCH_SUPPORTS_WITH_CPU
|
||||
## select ARCH_FLOAT_SW
|
||||
## select ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
## select ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
## select ARCH_DEFAULT_BE
|
||||
## select ARCH_SUPPORTS_BOTH_MMU
|
||||
## select ARCH_DEFAULT_HAS_MMU
|
||||
|
@ -4,7 +4,7 @@
|
||||
## select ARCH_SUPPORTS_64
|
||||
## select ARCH_DEFAULT_32
|
||||
## select ARCH_USE_MMU
|
||||
## select ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
## select ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
## select ARCH_DEFAULT_BE
|
||||
## select ARCH_SUPPORTS_WITH_ARCH
|
||||
## select ARCH_SUPPORTS_WITH_TUNE
|
||||
|
@ -3,7 +3,7 @@
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_SUPPORTS_64
|
||||
## select ARCH_DEFAULT_32
|
||||
## select ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
## select ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
## select ARCH_DEFAULT_BE
|
||||
## select ARCH_USE_MMU
|
||||
## select ARCH_SUPPORTS_WITH_ABI
|
||||
|
@ -3,9 +3,10 @@
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_DEFAULT_32
|
||||
## select ARCH_USE_MMU
|
||||
## select ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
## select ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
## select ARCH_DEFAULT_LE
|
||||
## select ARCH_REQUIRES_MULTILIB
|
||||
## select ARCH_SUPPORTS_WITH_ENDIAN
|
||||
##
|
||||
## help The Super-H architecture, as defined by:
|
||||
## help http://www.renesas.com/fmwk.jsp?cnt=superh_family_landing.jsp&fp=/products/mpumcu/superh_family/
|
||||
@ -14,10 +15,42 @@ choice
|
||||
bool
|
||||
prompt "Variant"
|
||||
|
||||
# GCC supports both endiannesses even if a specific CPU is selected (so long
|
||||
# as that CPU can be both BE/LE), but the binutils (or specifically, ld)
|
||||
# configures for both endiannesses only if sh-*-linux target is selected.
|
||||
config ARCH_SH_SH
|
||||
bool
|
||||
prompt "unspecified"
|
||||
select ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
select ARCH_SUPPORTS_WITH_CPU
|
||||
help
|
||||
If left unspecified, GCC will determine the set of multilibs to compile automatically
|
||||
based on selected endianness, FPU mode and OS.
|
||||
|
||||
config ARCH_SH_SH1
|
||||
bool
|
||||
prompt "sh1"
|
||||
|
||||
config ARCH_SH_SH2
|
||||
bool
|
||||
prompt "sh2"
|
||||
|
||||
config ARCH_SH_SH2E
|
||||
bool
|
||||
prompt "sh2e"
|
||||
|
||||
config ARCH_SH_SH2A
|
||||
bool
|
||||
prompt "sh2a"
|
||||
|
||||
config ARCH_SH_SH3
|
||||
bool
|
||||
prompt "sh3"
|
||||
|
||||
config ARCH_SH_SH3E
|
||||
bool
|
||||
prompt "sh3e"
|
||||
|
||||
config ARCH_SH_SH4
|
||||
bool
|
||||
prompt "sh4"
|
||||
@ -30,6 +63,12 @@ endchoice
|
||||
|
||||
config ARCH_SH_VARIANT
|
||||
string
|
||||
default "sh" if ARCH_SH_SH
|
||||
default "sh1" if ARCH_SH_SH1
|
||||
default "sh2" if ARCH_SH_SH2
|
||||
default "sh2e" if ARCH_SH_SH2E
|
||||
default "sh2a" if ARCH_SH_SH2A
|
||||
default "sh3" if ARCH_SH_SH3
|
||||
default "sh3e" if ARCH_SH_SH3E
|
||||
default "sh4" if ARCH_SH_SH4
|
||||
default "sh4a" if ARCH_SH_SH4A
|
||||
|
@ -1,7 +1,7 @@
|
||||
# xtensa specific configuration file
|
||||
|
||||
## select ARCH_SUPPORTS_32
|
||||
## select ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
## select ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
## select ARCH_DEFAULT_LE
|
||||
## select ARCH_SUPPORTS_BOTH_MMU
|
||||
## select ARCH_DEFAULT_HAS_MMU
|
||||
|
@ -93,8 +93,16 @@ config ARCH_USE_MMU
|
||||
have one (eg. ARM Cortex-A8).
|
||||
|
||||
#--------------------------------------
|
||||
config ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
bool
|
||||
help
|
||||
Architecture allows to select endianness at the time the toolchain is built.
|
||||
|
||||
config ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
bool
|
||||
select ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
help
|
||||
Toolchain supports both big/little endian.
|
||||
|
||||
config ARCH_DEFAULT_BE
|
||||
bool
|
||||
@ -102,12 +110,22 @@ config ARCH_DEFAULT_BE
|
||||
config ARCH_DEFAULT_LE
|
||||
bool
|
||||
|
||||
config ARCH_DEFAULT_BE_LE
|
||||
bool
|
||||
depends on ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
|
||||
config ARCH_DEFAULT_LE_BE
|
||||
bool
|
||||
depends on ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
|
||||
choice
|
||||
bool
|
||||
prompt "Endianness:"
|
||||
depends on ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
default ARCH_BE if ARCH_DEFAULT_BE
|
||||
default ARCH_LE if ARCH_DEFAULT_LE
|
||||
default ARCH_BE_LE if ARCH_DEFAULT_BE_LE
|
||||
default ARCH_LE_BE if ARCH_DEFAULT_LE_BE
|
||||
|
||||
config ARCH_BE
|
||||
bool
|
||||
@ -117,13 +135,23 @@ config ARCH_LE
|
||||
bool
|
||||
prompt "Little endian"
|
||||
|
||||
config ARCH_BE_LE
|
||||
bool
|
||||
prompt "Both, default big endian"
|
||||
|
||||
config ARCH_LE_BE
|
||||
bool
|
||||
prompt "Both, default little endian"
|
||||
|
||||
endchoice
|
||||
|
||||
config ARCH_ENDIAN
|
||||
string
|
||||
depends on ARCH_SUPPORTS_BOTH_ENDIAN
|
||||
default "big" if ARCH_BE
|
||||
default "little" if ARCH_LE
|
||||
depends on ARCH_SUPPORTS_EITHER_ENDIAN
|
||||
default "big" if ARCH_BE
|
||||
default "little" if ARCH_LE
|
||||
default "big,little" if ARCH_BE_LE
|
||||
default "little,big" if ARCH_LE_BE
|
||||
|
||||
#--------------------------------------
|
||||
config ARCH_SUPPORTS_8
|
||||
@ -208,6 +236,9 @@ config ARCH_SUPPORTS_WITH_FLOAT
|
||||
config ARCH_SUPPORTS_WITH_FPU
|
||||
bool
|
||||
|
||||
config ARCH_SUPPORTS_WITH_ENDIAN
|
||||
bool
|
||||
|
||||
config ARCH_SUPPORTS_SOFTFP
|
||||
bool
|
||||
|
||||
@ -396,7 +427,6 @@ config TARGET_LDFLAGS
|
||||
|
||||
config ARCH_FLOAT
|
||||
string
|
||||
default "" if ! ARCH_SUPPORTS_WITH_FLOAT
|
||||
default "auto" if ARCH_FLOAT_AUTO
|
||||
default "hard" if ARCH_FLOAT_HW
|
||||
default "soft" if ARCH_FLOAT_SW
|
||||
|
@ -313,7 +313,7 @@ ACX_PROG_VERSION([LIBTOOLIZE],
|
||||
|
||||
ACX_PROG_VERSION([AUTOCONF],
|
||||
[GNU autoconf >= 2.65],
|
||||
[AUTOCONF],
|
||||
[autoconf],
|
||||
[autoconf],
|
||||
['\(GNU Autoconf\) ([3-9]\.|2\.[7-9][0-9]|2\.6[5-9])'],
|
||||
[autoconf_2_63_or_newer])
|
||||
|
@ -189,6 +189,8 @@ EOF
|
||||
CT_EndStep
|
||||
}
|
||||
|
||||
mv .config .config-saved
|
||||
. maintainer/package-versions
|
||||
mv .config-saved .config
|
||||
|
||||
rm -rf ${CT_TARBALLS_DIR} ${CT_COMMON_SRC_DIR}
|
||||
|
64
packages/uClibc-ng/1.0.25/0001-gdb8.patch
vendored
Normal file
64
packages/uClibc-ng/1.0.25/0001-gdb8.patch
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
commit 111f01d432d542a153c1cad83def3a6ab57df7af
|
||||
Author: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
||||
Date: Sat Aug 5 11:28:07 2017 +0200
|
||||
|
||||
fix issues with gdb 8.0
|
||||
|
||||
GDB 8.0 is compiled and linked with g++, but the
|
||||
linking of static targets (f.e. coldfire) fails,
|
||||
without declaring the functions in thread_db.h
|
||||
extern C.
|
||||
|
||||
The compilation of gdb errors out with:
|
||||
thread-db.o: In function `thread_db_init()':
|
||||
thread-db.c:(.text+0x5b6): undefined reference to `td_ta_new(ps_prochandle*, td_thragent**)'
|
||||
thread-db.c:(.text+0x61e): undefined reference to `td_thr_get_info(td_thrhandle const*, td_thrinfo*)'
|
||||
thread-db.c:(.text+0x632): undefined reference to `td_symbol_list()'
|
||||
..
|
||||
|
||||
diff --git a/libpthread/linuxthreads_db/thread_db.h b/libpthread/linuxthreads_db/thread_db.h
|
||||
index 13c30af5b..ec79f6022 100644
|
||||
--- a/libpthread/linuxthreads_db/thread_db.h
|
||||
+++ b/libpthread/linuxthreads_db/thread_db.h
|
||||
@@ -27,6 +27,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/procfs.h>
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+extern "C" {
|
||||
+#endif
|
||||
|
||||
/* Error codes of the library. */
|
||||
typedef enum
|
||||
@@ -455,4 +458,8 @@ extern td_err_e td_thr_dbsuspend (const td_thrhandle_t *__th);
|
||||
/* Resume execution of thread TH. */
|
||||
extern td_err_e td_thr_dbresume (const td_thrhandle_t *__th);
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#endif /* thread_db.h */
|
||||
diff --git a/libpthread/nptl_db/thread_db.h b/libpthread/nptl_db/thread_db.h
|
||||
index 27ea69af8..993842ff5 100644
|
||||
--- a/libpthread/nptl_db/thread_db.h
|
||||
+++ b/libpthread/nptl_db/thread_db.h
|
||||
@@ -27,6 +27,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/procfs.h>
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+extern "C" {
|
||||
+#endif
|
||||
|
||||
/* Error codes of the library. */
|
||||
typedef enum
|
||||
@@ -455,4 +458,8 @@ extern td_err_e td_thr_dbsuspend (const td_thrhandle_t *__th);
|
||||
/* Resume execution of thread TH. */
|
||||
extern td_err_e td_thr_dbresume (const td_thrhandle_t *__th);
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#endif /* thread_db.h */
|
64
packages/uClibc-ng/1.0.26/0001-gdb8.patch
vendored
Normal file
64
packages/uClibc-ng/1.0.26/0001-gdb8.patch
vendored
Normal file
@ -0,0 +1,64 @@
|
||||
commit 111f01d432d542a153c1cad83def3a6ab57df7af
|
||||
Author: Waldemar Brodkorb <wbx@uclibc-ng.org>
|
||||
Date: Sat Aug 5 11:28:07 2017 +0200
|
||||
|
||||
fix issues with gdb 8.0
|
||||
|
||||
GDB 8.0 is compiled and linked with g++, but the
|
||||
linking of static targets (f.e. coldfire) fails,
|
||||
without declaring the functions in thread_db.h
|
||||
extern C.
|
||||
|
||||
The compilation of gdb errors out with:
|
||||
thread-db.o: In function `thread_db_init()':
|
||||
thread-db.c:(.text+0x5b6): undefined reference to `td_ta_new(ps_prochandle*, td_thragent**)'
|
||||
thread-db.c:(.text+0x61e): undefined reference to `td_thr_get_info(td_thrhandle const*, td_thrinfo*)'
|
||||
thread-db.c:(.text+0x632): undefined reference to `td_symbol_list()'
|
||||
..
|
||||
|
||||
diff --git a/libpthread/linuxthreads_db/thread_db.h b/libpthread/linuxthreads_db/thread_db.h
|
||||
index 13c30af5b..ec79f6022 100644
|
||||
--- a/libpthread/linuxthreads_db/thread_db.h
|
||||
+++ b/libpthread/linuxthreads_db/thread_db.h
|
||||
@@ -27,6 +27,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/procfs.h>
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+extern "C" {
|
||||
+#endif
|
||||
|
||||
/* Error codes of the library. */
|
||||
typedef enum
|
||||
@@ -455,4 +458,8 @@ extern td_err_e td_thr_dbsuspend (const td_thrhandle_t *__th);
|
||||
/* Resume execution of thread TH. */
|
||||
extern td_err_e td_thr_dbresume (const td_thrhandle_t *__th);
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#endif /* thread_db.h */
|
||||
diff --git a/libpthread/nptl_db/thread_db.h b/libpthread/nptl_db/thread_db.h
|
||||
index 27ea69af8..993842ff5 100644
|
||||
--- a/libpthread/nptl_db/thread_db.h
|
||||
+++ b/libpthread/nptl_db/thread_db.h
|
||||
@@ -27,6 +27,9 @@
|
||||
#include <sys/types.h>
|
||||
#include <sys/procfs.h>
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+extern "C" {
|
||||
+#endif
|
||||
|
||||
/* Error codes of the library. */
|
||||
typedef enum
|
||||
@@ -455,4 +458,8 @@ extern td_err_e td_thr_dbsuspend (const td_thrhandle_t *__th);
|
||||
/* Resume execution of thread TH. */
|
||||
extern td_err_e td_thr_dbresume (const td_thrhandle_t *__th);
|
||||
|
||||
+#ifdef __cplusplus
|
||||
+}
|
||||
+#endif
|
||||
+
|
||||
#endif /* thread_db.h */
|
@ -1,9 +1,10 @@
|
||||
CT_ARCH_SH=y
|
||||
CT_ARCH_SH_SH4=y
|
||||
CT_ARCH_CPU="sh4"
|
||||
CT_ARCH_LE_BE=y
|
||||
CT_TARGET_VENDOR="multilib"
|
||||
CT_KERNEL_LINUX=y
|
||||
CT_BINUTILS_PLUGINS=y
|
||||
CT_CC_GCC_MULTILIB_LIST="m4a"
|
||||
CT_CC_GCC_MULTILIB_LIST="m4-nofpu,m4a,m3"
|
||||
CT_CC_LANG_CXX=y
|
||||
CT_DEBUG_GDB=y
|
||||
# CT_GDB_CROSS_PYTHON is not set
|
@ -1,10 +1,11 @@
|
||||
CT_ARCH_SH=y
|
||||
CT_ARCH_SH_SH4=y
|
||||
CT_ARCH_CPU="sh4"
|
||||
CT_ARCH_LE_BE=y
|
||||
CT_TARGET_VENDOR="multilib"
|
||||
CT_KERNEL_LINUX=y
|
||||
CT_BINUTILS_PLUGINS=y
|
||||
CT_LIBC_UCLIBC=y
|
||||
CT_CC_GCC_MULTILIB_LIST="m4a,m3"
|
||||
CT_CC_GCC_MULTILIB_LIST="sh3,sh4,sh4a,sh4a-nofpu"
|
||||
CT_CC_LANG_CXX=y
|
||||
CT_DEBUG_GDB=y
|
||||
# CT_GDB_CROSS_PYTHON is not set
|
5
samples/sh-unknown-elf/crosstool.config
Normal file
5
samples/sh-unknown-elf/crosstool.config
Normal file
@ -0,0 +1,5 @@
|
||||
CT_ARCH_SH=y
|
||||
CT_ARCH_LE_BE=y
|
||||
CT_BINUTILS_PLUGINS=y
|
||||
CT_CC_LANG_CXX=y
|
||||
CT_GETTEXT=y
|
3
samples/sh-unknown-elf/reported.by
Normal file
3
samples/sh-unknown-elf/reported.by
Normal file
@ -0,0 +1,3 @@
|
||||
reporter_name="Alexey Neyman"
|
||||
reporter_url=""
|
||||
reporter_comment="Sample SuperH/baremetal configuration with all default multilibs."
|
@ -1,7 +0,0 @@
|
||||
CT_ARCH_SH=y
|
||||
CT_ARCH_SH_SH4=y
|
||||
CT_KERNEL_LINUX=y
|
||||
CT_BINUTILS_PLUGINS=y
|
||||
CT_CC_LANG_CXX=y
|
||||
CT_DEBUG_GDB=y
|
||||
# CT_GDB_CROSS_PYTHON is not set
|
@ -1,3 +0,0 @@
|
||||
reporter_name="YEM"
|
||||
reporter_url="http://ymorin.is-a-geek.org/"
|
||||
reporter_comment="EXPERIMENTAL Super-H sh4 sample."
|
@ -22,6 +22,12 @@ CT_DoArchGlibcAdjustTuple() {
|
||||
:;
|
||||
}
|
||||
|
||||
# Multilib: Adjust configure arguments for GLIBC
|
||||
# Usage: CT_DoArchGlibcAdjustConfigure <configure-args-array-name> <cflags>
|
||||
CT_DoArchGlibcAdjustConfigure() {
|
||||
:;
|
||||
}
|
||||
|
||||
# Helper for uClibc configurators: select the architecture
|
||||
# Usage: CT_DoArchUClibcSelectArch <config-file> <architecture>
|
||||
CT_DoArchUClibcSelectArch() {
|
||||
|
@ -3,21 +3,6 @@
|
||||
CT_DoArchTupleValues () {
|
||||
# The architecture part of the tuple:
|
||||
CT_TARGET_ARCH="${CT_ARCH}${CT_ARCH_SUFFIX:-${target_endian_el}}"
|
||||
|
||||
# gcc ./configure flags
|
||||
CT_ARCH_WITH_ARCH=
|
||||
CT_ARCH_WITH_ABI=
|
||||
CT_ARCH_WITH_CPU=
|
||||
CT_ARCH_WITH_TUNE=
|
||||
CT_ARCH_WITH_FPU=
|
||||
CT_ARCH_WITH_FLOAT=
|
||||
|
||||
# CFLAGS
|
||||
case "${CT_ARCH_FLOAT_HW},${CT_ARCH_FLOAT_SW}" in
|
||||
y,) CT_ARCH_FLOAT_CFLAG="-mhard-float" ;;
|
||||
,y) CT_ARCH_FLOAT_CFLAG="-msoft-float" ;;
|
||||
esac
|
||||
|
||||
}
|
||||
|
||||
CT_DoArchUClibcConfig() {
|
||||
|
@ -4,36 +4,29 @@ CT_DoArchTupleValues () {
|
||||
# The architecture part of the tuple:
|
||||
CT_TARGET_ARCH="${CT_ARCH_SH_VARIANT}${CT_ARCH_SUFFIX:-${target_endian_eb}}"
|
||||
|
||||
# gcc ./configure flags
|
||||
CT_ARCH_WITH_ARCH=
|
||||
CT_ARCH_WITH_ABI=
|
||||
CT_ARCH_WITH_CPU=
|
||||
CT_ARCH_WITH_TUNE=
|
||||
CT_ARCH_WITH_FPU=
|
||||
CT_ARCH_WITH_FLOAT=
|
||||
|
||||
# Endianness stuff
|
||||
# Endianness stuff (uses non-standard CFLAGS). If both are compiled, let the
|
||||
# compiler's default or multilib iterator be used.
|
||||
case "${CT_ARCH_ENDIAN}" in
|
||||
big) CT_ARCH_ENDIAN_CFLAG=-mb;;
|
||||
little) CT_ARCH_ENDIAN_CFLAG=-ml;;
|
||||
esac
|
||||
|
||||
# CFLAGS
|
||||
# Instead of -m{soft,hard}-float, uses CPU type
|
||||
CT_ARCH_FLOAT_CFLAG=
|
||||
case "${CT_ARCH_SH_VARIANT}" in
|
||||
sh3) CT_ARCH_ARCH_CFLAG=-m3;;
|
||||
sh4*)
|
||||
sh4*|sh2*)
|
||||
# softfp is not possible for SuperH, no need to test for it.
|
||||
case "${CT_ARCH_FLOAT}" in
|
||||
hard)
|
||||
CT_ARCH_ARCH_CFLAG="-m4${CT_ARCH_SH_VARIANT##sh?}"
|
||||
CT_ARCH_ARCH_CFLAG="-m${CT_ARCH_SH_VARIANT##sh}"
|
||||
;;
|
||||
soft)
|
||||
CT_ARCH_ARCH_CFLAG="-m4${CT_ARCH_SH_VARIANT##sh?}-nofpu"
|
||||
CT_ARCH_ARCH_CFLAG="-m${CT_ARCH_SH_VARIANT##sh}-nofpu"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
CT_ARCH_FLOAT_CFLAG=
|
||||
}
|
||||
|
||||
CT_DoArchMultilibList() {
|
||||
@ -45,13 +38,19 @@ CT_DoArchMultilibList() {
|
||||
# the default CPU. E.g. if configuring for sh4-*-*, we need to remove
|
||||
# "sh4" or "m4" from the multilib list. Otherwise, the resulting compiler
|
||||
# will fail when that CPU is selected explicitly "sh4-multilib-linux-gnu-gcc -m4 ..."
|
||||
# as it will fail to find the sysroot with that suffix.
|
||||
# as it will fail to find the sysroot with that suffix. This applies to both
|
||||
# the CPU type inferred from the target tuple (CT_ARCH_SH_VARIANT) as well as
|
||||
# the default CPU configured with --with-cpu (CT_ARCH_CPU).
|
||||
IFS=,
|
||||
for x in ${CT_CC_GCC_MULTILIB_LIST}; do
|
||||
if [ "${x}" = "${CT_ARCH_SH_VARIANT}" -o "sh${x#m}" = "${CT_ARCH_SH_VARIANT}" ]; then
|
||||
CT_DoLog WARN "Ignoring '${x}' in multilib list: it is the default multilib"
|
||||
continue
|
||||
fi
|
||||
if [ "${x}" = "${CT_ARCH_CPU}" -o "sh${x#m}" = "${CT_ARCH_CPU}" ]; then
|
||||
CT_DoLog WARN "Ignoring '${x}' in multilib list: it is the default multilib"
|
||||
continue
|
||||
fi
|
||||
new="${new:+${new},}${x}"
|
||||
done
|
||||
IFS="${save_ifs}"
|
||||
@ -59,15 +58,110 @@ CT_DoArchMultilibList() {
|
||||
CT_DoLog DEBUG "Adjusted CT_CC_GCC_MULTILIB_LIST to '${CT_CC_GCC_MULTILIB_LIST}'"
|
||||
}
|
||||
|
||||
#------------------------------------------------------------------------------
|
||||
# Get multilib architecture-specific target
|
||||
# Usage: CT_DoArchMultilibTarget "target variable" "multilib flags"
|
||||
CT_DoArchMultilibTarget ()
|
||||
{
|
||||
local target_var="${1}"; shift
|
||||
local -a multi_flags=( "$@" )
|
||||
local target_
|
||||
local newcpu
|
||||
|
||||
for m in "${multi_flags[@]}"; do
|
||||
case "${m}" in
|
||||
-m4*) newcpu=sh4;;
|
||||
-m3*) newcpu=sh3;;
|
||||
-m2*) newcpu=sh2;;
|
||||
-m1*) newcpu=sh1;;
|
||||
esac
|
||||
done
|
||||
|
||||
eval target_=\"\${${target_var}}\"
|
||||
|
||||
# Strip CPU name and append the new one if an option has been seen.
|
||||
if [ -n "${newcpu}" ]; then
|
||||
target_="${newcpu}-${target_#*-}"
|
||||
fi
|
||||
|
||||
# Set the target variable
|
||||
eval ${target_var}=\"${target_}\"
|
||||
}
|
||||
|
||||
# Adjust target tuple for GLIBC
|
||||
CT_DoArchGlibcAdjustTuple() {
|
||||
local target_var="${1}"
|
||||
local target_
|
||||
|
||||
eval target_=\"\${${target_var}}\"
|
||||
|
||||
case "${target_}" in
|
||||
sh-*)
|
||||
# Glibc does not build unless configured with 'shX-*' tuple.
|
||||
# Since we ended up here, no architecture variant has been
|
||||
# specified, so the only source of default is CT_ARCH_CPU.
|
||||
# GCC defaults to sh1, but this Glibc cannot compile for it.
|
||||
if [ -n "${CT_ARCH_CPU}" ]; then
|
||||
target_=${target_/#sh-/${CT_ARCH_CPU}-}
|
||||
CT_DoLog DEBUG "Adjusted target tuple ${target_}"
|
||||
else
|
||||
CT_Abort "GNU C library cannot build for sh1 (GCC default). " \
|
||||
"Specify architecture variant or the default CPU type."
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
|
||||
# Set the target variable
|
||||
eval ${target_var}=\"${target_}\"
|
||||
}
|
||||
|
||||
# Multilib: Adjust configure arguments for GLIBC
|
||||
# Usage: CT_DoArchGlibcAdjustConfigure <configure-args-array-name> <cflags>
|
||||
CT_DoArchGlibcAdjustConfigure() {
|
||||
local -a add_args
|
||||
local array="${1}"
|
||||
local cflags="${2}"
|
||||
local opt
|
||||
|
||||
for opt in ${cflags}; do
|
||||
case "${opt}" in
|
||||
-m[1-5]*-nofpu)
|
||||
add_args+=( "--without-fp" )
|
||||
;;
|
||||
-m[1-5]*)
|
||||
add_args+=( "--with-fp" )
|
||||
;;
|
||||
esac
|
||||
done
|
||||
|
||||
# If architecture variant was specified, we'd have CT_ARCH_ARCH_CFLAG
|
||||
# and it would've been handled above. Our last resort: CT_ARCH_CPU
|
||||
if [ "${#add_args[@]}" = 0 ]; then
|
||||
case "${CT_ARCH_CPU}" in
|
||||
sh[34]*-nofpu)
|
||||
add_args+=( "--without-fp" )
|
||||
;;
|
||||
sh[34]*)
|
||||
add_args+=( "--with-fp" )
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
|
||||
eval "${array}+=( \"\${add_args[@]}\" )"
|
||||
}
|
||||
|
||||
CT_DoArchUClibcConfig() {
|
||||
local cfg="${1}"
|
||||
|
||||
# FIXME: uclibc (!ng) seems to support sh64 (sh5), too
|
||||
CT_DoArchUClibcSelectArch "${cfg}" "sh"
|
||||
CT_KconfigDisableOption "CONFIG_SH2" "${cfg}"
|
||||
CT_KconfigDisableOption "CONFIG_SH2A" "${cfg}"
|
||||
CT_KconfigDisableOption "CONFIG_SH3" "${cfg}"
|
||||
CT_KconfigDisableOption "CONFIG_SH4" "${cfg}"
|
||||
CT_KconfigDisableOption "CONFIG_SH4A" "${cfg}"
|
||||
case "${CT_ARCH_SH_VARIANT}" in
|
||||
sh2) CT_KconfigEnableOption "CONFIG_SH2" "${cfg}";;
|
||||
sh2a) CT_KconfigEnableOption "CONFIG_SH2A" "${cfg}";;
|
||||
sh3) CT_KconfigEnableOption "CONFIG_SH3" "${cfg}";;
|
||||
sh4) CT_KconfigEnableOption "CONFIG_SH4" "${cfg}";;
|
||||
sh4a) CT_KconfigEnableOption "CONFIG_SH4A" "${cfg}";;
|
||||
@ -81,6 +175,36 @@ CT_DoArchUClibcCflags() {
|
||||
|
||||
for f in ${cflags}; do
|
||||
case "${f}" in
|
||||
-ml)
|
||||
CT_KconfigDisableOption "ARCH_BIG_ENDIAN" "${dst}"
|
||||
CT_KconfigDisableOption "ARCH_WANTS_BIG_ENDIAN" "${dst}"
|
||||
CT_KconfigEnableOption "ARCH_LITTLE_ENDIAN" "${dst}"
|
||||
CT_KconfigEnableOption "ARCH_WANTS_LITTLE_ENDIAN" "${dst}"
|
||||
;;
|
||||
-mb)
|
||||
CT_KconfigEnableOption "ARCH_BIG_ENDIAN" "${dst}"
|
||||
CT_KconfigEnableOption "ARCH_WANTS_BIG_ENDIAN" "${dst}"
|
||||
CT_KconfigDisableOption "ARCH_LITTLE_ENDIAN" "${dst}"
|
||||
CT_KconfigDisableOption "ARCH_WANTS_LITTLE_ENDIAN" "${dst}"
|
||||
;;
|
||||
-m2|-m2a|-m2a-nofpu|-m3|-m4|-m4-nofpu|-m4a|-m4a-nofpu)
|
||||
CT_KconfigDisableOption "CONFIG_SH2" "${cfg}"
|
||||
CT_KconfigDisableOption "CONFIG_SH2A" "${cfg}"
|
||||
CT_KconfigDisableOption "CONFIG_SH3" "${cfg}"
|
||||
CT_KconfigDisableOption "CONFIG_SH4" "${cfg}"
|
||||
CT_KconfigDisableOption "CONFIG_SH4A" "${cfg}"
|
||||
CT_KconfigDisableOption "UCLIBC_HAS_FPU" "${cfg}"
|
||||
case "${f}" in
|
||||
-m2)
|
||||
CT_KconfigEnableOption "CONFIG_SH2" "${cfg}"
|
||||
;;
|
||||
-m2a)
|
||||
CT_KconfigEnableOption "CONFIG_SH2A" "${cfg}"
|
||||
CT_KconfigEnableOption "UCLIBC_HAS_FPU" "${cfg}"
|
||||
;;
|
||||
-m2a-nofpu)
|
||||
CT_KconfigEnableOption "CONFIG_SH2A" "${cfg}"
|
||||
;;
|
||||
-m3)
|
||||
CT_KconfigEnableOption "CONFIG_SH3" "${cfg}"
|
||||
;;
|
||||
@ -90,7 +214,6 @@ CT_DoArchUClibcCflags() {
|
||||
;;
|
||||
-m4-nofpu)
|
||||
CT_KconfigEnableOption "CONFIG_SH4" "${cfg}"
|
||||
CT_KconfigDisableOption "UCLIBC_HAS_FPU" "${cfg}"
|
||||
;;
|
||||
-m4a)
|
||||
CT_KconfigEnableOption "CONFIG_SH4A" "${cfg}"
|
||||
@ -98,8 +221,9 @@ CT_DoArchUClibcCflags() {
|
||||
;;
|
||||
-m4a-nofpu)
|
||||
CT_KconfigEnableOption "CONFIG_SH4A" "${cfg}"
|
||||
CT_KconfigDisableOption "UCLIBC_HAS_FPU" "${cfg}"
|
||||
;;
|
||||
esac
|
||||
;;
|
||||
esac
|
||||
done
|
||||
}
|
||||
|
@ -86,7 +86,7 @@ CT_DoArchGlibcAdjustTuple() {
|
||||
# x86 quirk: architecture name is i386, but glibc expects i[4567]86 - to
|
||||
# indicate the desired optimization. If it was a multilib variant of x86_64,
|
||||
# then it targets at least NetBurst a.k.a. i786, but we'll follow the model
|
||||
# above # and set the optimization to i686. Otherwise, replace with the most
|
||||
# above and set the optimization to i686. Otherwise, replace with the most
|
||||
# conservative choice, i486.
|
||||
i386-*)
|
||||
if [ "${CT_TARGET_ARCH}" = "x86_64" ]; then
|
||||
|
@ -233,7 +233,11 @@ do_cc_core_pass_2() {
|
||||
# later, we need to build libgcc
|
||||
case "${CT_THREADS}" in
|
||||
nptl)
|
||||
core_opts+=( "mode=shared" )
|
||||
if [ "${CT_SHARED_LIBS}" = "y" ]; then
|
||||
core_opts+=( "mode=shared" )
|
||||
else
|
||||
core_opts+=( "mode=static" )
|
||||
fi
|
||||
core_opts+=( "build_libgcc=yes" )
|
||||
;;
|
||||
win32)
|
||||
@ -350,7 +354,7 @@ do_gcc_core_backend() {
|
||||
CT_DoExecLog ALL cp -a "${CT_HEADERS_DIR}" "${prefix}/${CT_TARGET}/include"
|
||||
fi
|
||||
|
||||
for tmp in ARCH ABI CPU TUNE FPU FLOAT; do
|
||||
for tmp in ARCH ABI CPU TUNE FPU FLOAT ENDIAN; do
|
||||
eval tmp="\${CT_ARCH_WITH_${tmp}}"
|
||||
if [ -n "${tmp}" ]; then
|
||||
extra_config+=("${tmp}")
|
||||
@ -873,10 +877,13 @@ do_gcc_backend() {
|
||||
fi
|
||||
done
|
||||
|
||||
[ "${CT_SHARED_LIBS}" = "y" ] || extra_config+=("--disable-shared")
|
||||
[ -n "${CT_PKGVERSION}" ] && extra_config+=("--with-pkgversion=${CT_PKGVERSION}")
|
||||
[ -n "${CT_TOOLCHAIN_BUGURL}" ] && extra_config+=("--with-bugurl=${CT_TOOLCHAIN_BUGURL}")
|
||||
|
||||
if [ "${CT_SHARED_LIBS}" != "y" ]; then
|
||||
extra_config+=("--disable-shared")
|
||||
fi
|
||||
|
||||
case "${CT_CC_GCC_SJLJ_EXCEPTIONS}" in
|
||||
y) extra_config+=("--enable-sjlj-exceptions");;
|
||||
m) ;;
|
||||
|
@ -150,6 +150,9 @@ do_libc_backend_once() {
|
||||
;;
|
||||
esac
|
||||
|
||||
# FIXME static version of glibc seems to be broken:
|
||||
# build tries to use libc-modules.h which is generated from
|
||||
# soversions.i, which is only created for builds with shared libs.
|
||||
case "${CT_SHARED_LIBS}" in
|
||||
y) extra_config+=("--enable-shared");;
|
||||
*) extra_config+=("--disable-shared");;
|
||||
@ -208,6 +211,7 @@ do_libc_backend_once() {
|
||||
;;
|
||||
esac
|
||||
done
|
||||
CT_DoArchGlibcAdjustConfigure extra_config "${glibc_cflags}"
|
||||
|
||||
# ./configure is mislead by our tools override wrapper for bash
|
||||
# so just tell it where the real bash is _on_the_target_!
|
||||
@ -308,42 +312,39 @@ do_libc_backend_once() {
|
||||
"${extra_make_args[@]}" \
|
||||
install-headers
|
||||
|
||||
# For glibc, a few headers need to be manually installed
|
||||
if [ "${CT_LIBC}" = "glibc" ]; then
|
||||
# Two headers -- stubs.h and features.h -- aren't installed by install-headers,
|
||||
# so do them by hand. We can tolerate an empty stubs.h for the moment.
|
||||
# See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
|
||||
mkdir -p "${CT_HEADERS_DIR}/gnu"
|
||||
CT_DoExecLog ALL touch "${CT_HEADERS_DIR}/gnu/stubs.h"
|
||||
CT_DoExecLog ALL cp -v "${CT_SRC_DIR}/glibc/include/features.h" \
|
||||
"${CT_HEADERS_DIR}/features.h"
|
||||
# Two headers -- stubs.h and features.h -- aren't installed by install-headers,
|
||||
# so do them by hand. We can tolerate an empty stubs.h for the moment.
|
||||
# See e.g. http://gcc.gnu.org/ml/gcc/2002-01/msg00900.html
|
||||
mkdir -p "${CT_HEADERS_DIR}/gnu"
|
||||
CT_DoExecLog ALL touch "${CT_HEADERS_DIR}/gnu/stubs.h"
|
||||
CT_DoExecLog ALL cp -v "${CT_SRC_DIR}/glibc/include/features.h" \
|
||||
"${CT_HEADERS_DIR}/features.h"
|
||||
|
||||
# Building the bootstrap gcc requires either setting inhibit_libc, or
|
||||
# having a copy of stdio_lim.h... see
|
||||
# http://sources.redhat.com/ml/libc-alpha/2003-11/msg00045.html
|
||||
CT_DoExecLog ALL cp -v bits/stdio_lim.h "${CT_HEADERS_DIR}/bits/stdio_lim.h"
|
||||
# Building the bootstrap gcc requires either setting inhibit_libc, or
|
||||
# having a copy of stdio_lim.h... see
|
||||
# http://sources.redhat.com/ml/libc-alpha/2003-11/msg00045.html
|
||||
CT_DoExecLog ALL cp -v bits/stdio_lim.h "${CT_HEADERS_DIR}/bits/stdio_lim.h"
|
||||
|
||||
# Following error building gcc-4.0.0's gcj:
|
||||
# error: bits/syscall.h: No such file or directory
|
||||
# solved by following copy; see http://sourceware.org/ml/crossgcc/2005-05/msg00168.html
|
||||
# but it breaks arm, see http://sourceware.org/ml/crossgcc/2006-01/msg00091.html
|
||||
# Of course, only copy it if it does not already exist
|
||||
case "${CT_ARCH}" in
|
||||
arm) ;;
|
||||
*) if [ -f "${CT_HEADERS_DIR}/bits/syscall.h" ]; then
|
||||
CT_DoLog ALL "Not over-writing existing bits/syscall.h"
|
||||
elif [ -f "misc/bits/syscall.h" ]; then
|
||||
CT_DoExecLog ALL cp -v "misc/bits/syscall.h" \
|
||||
"${CT_HEADERS_DIR}/bits/syscall.h"
|
||||
else
|
||||
# "Old" glibces do not have the above file,
|
||||
# but provide this one:
|
||||
CT_DoExecLog ALL cp -v "misc/syscall-list.h" \
|
||||
"${CT_HEADERS_DIR}/bits/syscall.h"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
# Following error building gcc-4.0.0's gcj:
|
||||
# error: bits/syscall.h: No such file or directory
|
||||
# solved by following copy; see http://sourceware.org/ml/crossgcc/2005-05/msg00168.html
|
||||
# but it breaks arm, see http://sourceware.org/ml/crossgcc/2006-01/msg00091.html
|
||||
# Of course, only copy it if it does not already exist
|
||||
case "${CT_ARCH}" in
|
||||
arm) ;;
|
||||
*) if [ -f "${CT_HEADERS_DIR}/bits/syscall.h" ]; then
|
||||
CT_DoLog ALL "Not over-writing existing bits/syscall.h"
|
||||
elif [ -f "misc/bits/syscall.h" ]; then
|
||||
CT_DoExecLog ALL cp -v "misc/bits/syscall.h" \
|
||||
"${CT_HEADERS_DIR}/bits/syscall.h"
|
||||
else
|
||||
# "Old" glibces do not have the above file,
|
||||
# but provide this one:
|
||||
CT_DoExecLog ALL cp -v "misc/syscall-list.h" \
|
||||
"${CT_HEADERS_DIR}/bits/syscall.h"
|
||||
fi
|
||||
;;
|
||||
esac
|
||||
elif [ "${libc_mode}" = "final" -a -r "${multi_root}/.libc_headers_installed" ]; then
|
||||
CT_DoExecLog ALL rm -f "${multi_root}/.libc_headers_installed"
|
||||
fi # installing headers
|
||||
|
@ -224,13 +224,13 @@ manage_uClibc_config() {
|
||||
CT_DoExecLog ALL cp "${src}" "${dst}"
|
||||
|
||||
case "${CT_ARCH_ENDIAN}" in
|
||||
big)
|
||||
big|big,little)
|
||||
CT_KconfigDisableOption "ARCH_LITTLE_ENDIAN" "${dst}"
|
||||
CT_KconfigDisableOption "ARCH_WANTS_LITTLE_ENDIAN" "${dst}"
|
||||
CT_KconfigEnableOption "ARCH_BIG_ENDIAN" "${dst}"
|
||||
CT_KconfigEnableOption "ARCH_WANTS_BIG_ENDIAN" "${dst}"
|
||||
;;
|
||||
little)
|
||||
little|little,big)
|
||||
CT_KconfigDisableOption "ARCH_BIG_ENDIAN" "${dst}"
|
||||
CT_KconfigDisableOption "ARCH_WANTS_BIG_ENDIAN" "${dst}"
|
||||
CT_KconfigEnableOption "ARCH_LITTLE_ENDIAN" "${dst}"
|
||||
|
@ -164,9 +164,22 @@ CT_PREFIX_DIR="$( ${sed} -r -e 's:/+:/:g; s:/*$::;' <<<"${CT_PREFIX_DIR}" )"
|
||||
# Put user-supplied flags at the end, so that they take precedence.
|
||||
CT_TARGET_CFLAGS="${CT_ARCH_TARGET_CFLAGS} ${CT_TARGET_CFLAGS}"
|
||||
CT_TARGET_LDFLAGS="${CT_ARCH_TARGET_LDFLAGS} ${CT_TARGET_LDFLAGS}"
|
||||
|
||||
# FIXME move to gcc.sh
|
||||
CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_CORE_EXTRA_CONFIG} "${CT_CC_GCC_CORE_EXTRA_CONFIG_ARRAY[@]}" )
|
||||
CT_CC_GCC_EXTRA_CONFIG_ARRAY=( ${CT_ARCH_CC_EXTRA_CONFIG} "${CT_CC_GCC_EXTRA_CONFIG_ARRAY[@]}" )
|
||||
|
||||
# Starting with 1.0.20, applications using uClibc-ng do not link with
|
||||
# the default libgcc_c_spec used by GCC if only static libc.a exists - unless
|
||||
# -static is thrown in. The difference is that with -static, gcc passes
|
||||
# "--start-group -lgcc -lc --end-group" and without -static, it passes
|
||||
# "-lgcc -lc -lgcc" instead. The latter leaves a symbol from 2nd libgcc
|
||||
# (dl_iterate_phdr) unresolved because -lc is already done at this point.
|
||||
# Force static link on the target.
|
||||
if [ "${CT_SHARED_LIBS}" != "y" ]; then
|
||||
CT_TARGET_LDFLAGS+=" -static"
|
||||
fi
|
||||
|
||||
# Compute the package version string
|
||||
if [ "${CT_SHOW_CT_VERSION}" = "y" ]; then
|
||||
CT_PKGVERSION="crosstool-NG ${CT_VERSION}${CT_TOOLCHAIN_PKGVERSION:+ - ${CT_TOOLCHAIN_PKGVERSION}}"
|
||||
|
@ -318,10 +318,24 @@ CT_DoExecLog() {
|
||||
local level="$1"
|
||||
local cur_cmd
|
||||
local ret
|
||||
local cmd_seen
|
||||
shift
|
||||
|
||||
(
|
||||
for i in "$@"; do
|
||||
cur_cmd+="'${i}' "
|
||||
case "${i}" in
|
||||
*=*)
|
||||
if [ -z "${cmd_seen}" ]; then
|
||||
cur_cmd+=" ${i%%=*}='${i#*=}'"
|
||||
else
|
||||
cur_cmd+=" '${i}'"
|
||||
fi
|
||||
;;
|
||||
*)
|
||||
cur_cmd+=" '${i}'"
|
||||
cmd_seen=y
|
||||
;;
|
||||
esac
|
||||
done
|
||||
while true; do
|
||||
case "${1}" in
|
||||
@ -851,23 +865,33 @@ CT_EnvModify() {
|
||||
# sample saving sequence.
|
||||
CT_DoBuildTargetTuple() {
|
||||
# Set the endianness suffix, and the default endianness gcc option
|
||||
target_endian_eb=
|
||||
target_endian_be=
|
||||
target_endian_el=
|
||||
target_endian_le=
|
||||
case "${CT_ARCH_ENDIAN}" in
|
||||
big)
|
||||
target_endian_eb=eb
|
||||
target_endian_be=be
|
||||
target_endian_el=
|
||||
target_endian_le=
|
||||
CT_ARCH_ENDIAN_CFLAG="-mbig-endian"
|
||||
CT_ARCH_ENDIAN_LDFLAG="-Wl,-EB"
|
||||
;;
|
||||
little)
|
||||
target_endian_eb=
|
||||
target_endian_be=
|
||||
target_endian_el=el
|
||||
target_endian_le=le
|
||||
CT_ARCH_ENDIAN_CFLAG="-mlittle-endian"
|
||||
CT_ARCH_ENDIAN_LDFLAG="-Wl,-EL"
|
||||
;;
|
||||
# big,little and little,big do not need to pass the flags;
|
||||
# gcc is expected to be configured for that as default.
|
||||
big,little)
|
||||
target_endian_eb=eb
|
||||
target_endian_be=be
|
||||
;;
|
||||
little,big)
|
||||
target_endian_el=el
|
||||
target_endian_le=le
|
||||
;;
|
||||
esac
|
||||
|
||||
# Set the bitness suffix
|
||||
@ -902,7 +926,7 @@ CT_DoBuildTargetTuple() {
|
||||
|
||||
# Set the default values for ARCH, ABI, CPU, TUNE, FPU and FLOAT
|
||||
unset CT_ARCH_ARCH_CFLAG CT_ARCH_ABI_CFLAG CT_ARCH_CPU_CFLAG CT_ARCH_TUNE_CFLAG CT_ARCH_FPU_CFLAG CT_ARCH_FLOAT_CFLAG
|
||||
unset CT_ARCH_WITH_ARCH CT_ARCH_WITH_ABI CT_ARCH_WITH_CPU CT_ARCH_WITH_TUNE CT_ARCH_WITH_FPU CT_ARCH_WITH_FLOAT
|
||||
unset CT_ARCH_WITH_ARCH CT_ARCH_WITH_ABI CT_ARCH_WITH_CPU CT_ARCH_WITH_TUNE CT_ARCH_WITH_FPU CT_ARCH_WITH_FLOAT CT_ARCH_WITH_ENDIAN
|
||||
[ "${CT_ARCH_ARCH}" ] && { CT_ARCH_ARCH_CFLAG="-march=${CT_ARCH_ARCH}"; CT_ARCH_WITH_ARCH="--with-arch=${CT_ARCH_ARCH}"; }
|
||||
[ "${CT_ARCH_ABI}" ] && { CT_ARCH_ABI_CFLAG="-mabi=${CT_ARCH_ABI}"; CT_ARCH_WITH_ABI="--with-abi=${CT_ARCH_ABI}"; }
|
||||
[ "${CT_ARCH_CPU}" ] && { CT_ARCH_CPU_CFLAG="-mcpu=${CT_ARCH_CPU}"; CT_ARCH_WITH_CPU="--with-cpu=${CT_ARCH_CPU}"; }
|
||||
@ -924,6 +948,10 @@ CT_DoBuildTargetTuple() {
|
||||
;;
|
||||
esac
|
||||
|
||||
if [ "${CT_ARCH_SUPPORTS_WITH_ENDIAN}" = "y" ]; then
|
||||
CT_ARCH_WITH_ENDIAN="--with-endian=${CT_ARCH_ENDIAN}"
|
||||
fi
|
||||
|
||||
# Build the default kernel tuple part
|
||||
CT_TARGET_KERNEL="${CT_KERNEL}"
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user