summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/libc/newlib.in7
-rw-r--r--packages/expat/2.2.8/chksum4
-rw-r--r--packages/expat/2.2.9/chksum4
-rw-r--r--packages/expat/2.2.9/version.desc (renamed from packages/expat/2.2.8/version.desc)0
-rw-r--r--samples/arc-multilib-linux-gnu/crosstool.config7
-rw-r--r--samples/arc-multilib-linux-gnu/reported.by3
-rw-r--r--scripts/build/arch/arc.sh36
-rw-r--r--scripts/build/libc/musl.sh3
-rw-r--r--scripts/build/libc/newlib.sh1
9 files changed, 60 insertions, 5 deletions
diff --git a/config/libc/newlib.in b/config/libc/newlib.in
index 268f956..199eff2 100644
--- a/config/libc/newlib.in
+++ b/config/libc/newlib.in
@@ -152,6 +152,13 @@ config LIBC_NEWLIB_MULTITHREAD
help
Enable support for multiple threads.
+config LIBC_NEWLIB_RETARGETABLE_LOCKING
+ bool
+ prompt "Enable retargetable locking"
+ help
+ Enable retargetable locking to allow the operating system to override
+ the dummy lock functions defined within the newlib.
+
config LIBC_NEWLIB_EXTRA_SECTIONS
bool
prompt "Place each function & data element in their own section"
diff --git a/packages/expat/2.2.8/chksum b/packages/expat/2.2.8/chksum
deleted file mode 100644
index f0830b6..0000000
--- a/packages/expat/2.2.8/chksum
+++ /dev/null
@@ -1,4 +0,0 @@
-md5 expat-2.2.8.tar.bz2 00858041acfea5757af55e6ee6b86231
-sha1 expat-2.2.8.tar.bz2 e1665bdab5ceaab47718b5a7f3ffceca7f648433
-sha256 expat-2.2.8.tar.bz2 9a130948b05a82da34e4171d5f5ae5d321d9630277af02c8fa51e431f6475102
-sha512 expat-2.2.8.tar.bz2 b1c995320d3eb406fe98e87fad204cc1336a74fb70c3ce3876d16ab955507863c3ee406ab10f0e8b63ed51cda0f7da4df0039626990fc2710f41c589c04b4022
diff --git a/packages/expat/2.2.9/chksum b/packages/expat/2.2.9/chksum
new file mode 100644
index 0000000..1c7e8b8
--- /dev/null
+++ b/packages/expat/2.2.9/chksum
@@ -0,0 +1,4 @@
+md5 expat-2.2.9.tar.bz2 875a2c2ff3e8eb9e5a5cd62db2033ab5
+sha1 expat-2.2.9.tar.bz2 ef5c1c55913a6ab18496ee99166f86269c7cdc31
+sha256 expat-2.2.9.tar.bz2 f1063084dc4302a427dabcca499c8312b3a32a29b7d2506653ecc8f950a9a237
+sha512 expat-2.2.9.tar.bz2 8ea4b89a171dfda8267c8b7a0295516d169bf7f46587ebe460fe0ae7a31478a119ae2a7eaa09b3ce46b107ec7cd2274ea66d91c08b8a4ad6b98ba984cdd4e15b
diff --git a/packages/expat/2.2.8/version.desc b/packages/expat/2.2.9/version.desc
index e69de29..e69de29 100644
--- a/packages/expat/2.2.8/version.desc
+++ b/packages/expat/2.2.9/version.desc
diff --git a/samples/arc-multilib-linux-gnu/crosstool.config b/samples/arc-multilib-linux-gnu/crosstool.config
new file mode 100644
index 0000000..3dc7802
--- /dev/null
+++ b/samples/arc-multilib-linux-gnu/crosstool.config
@@ -0,0 +1,7 @@
+CT_CONFIG_VERSION="3"
+CT_ARCH_ARC=y
+CT_MULTILIB=y
+CT_TARGET_CFLAGS="-matomic"
+CT_TARGET_VENDOR="multilib"
+CT_TARGET_ALIAS="arc-linux"
+CT_KERNEL_LINUX=y
diff --git a/samples/arc-multilib-linux-gnu/reported.by b/samples/arc-multilib-linux-gnu/reported.by
new file mode 100644
index 0000000..e98760a
--- /dev/null
+++ b/samples/arc-multilib-linux-gnu/reported.by
@@ -0,0 +1,3 @@
+reporter_name="Alexey Brodkin"
+reporter_url="http://embarc.org"
+reporter_comment="ARC multilib GNU Linux toolchain"
diff --git a/scripts/build/arch/arc.sh b/scripts/build/arch/arc.sh
index b13ef0e..d15f73f 100644
--- a/scripts/build/arch/arc.sh
+++ b/scripts/build/arch/arc.sh
@@ -29,3 +29,39 @@ CT_DoArchUClibcCflags()
esac
done
}
+
+# Multilib: Adjust configure arguments for GLIBC
+# Usage: CT_DoArchGlibcAdjustConfigure <configure-args-array-name> <cflags>
+#
+# From GCC's standpoint ARC's multilib items are defined by "mcpu" values
+# which we have quite a few and for all of them might be built optimized
+# cross-toolchain.
+#
+# From Glibc's standpoint multilib is multi-ABI and so very limited
+# versions are supposed to co-exist.
+#
+# Here we force Glibc to install libraries in per-multilib folder to create
+# a universal cross-toolchain that has libs optimized for multiple CPU types.
+CT_DoArchGlibcAdjustConfigure() {
+ local -a add_args
+ local array="${1}"
+ local cflags="${2}"
+ local opt
+ local mcpu
+
+ # If building for multilib, set proper installation paths
+ if [ "${CT_MULTILIB}" = "y" ]; then
+ for opt in ${cflags}; do
+ case "${opt}" in
+ -mcpu=*)
+ mcpu="${opt#*=}"
+ add_args+=( "libc_cv_rtlddir=/lib/${mcpu}" )
+ add_args+=( "libc_cv_slibdir=/lib/${mcpu}" )
+ add_args+=( "--libdir=/usr/lib/${mcpu}" )
+ ;;
+ esac
+ done
+ fi
+
+ eval "${array}+=( \"\${add_args[@]}\" )"
+}
diff --git a/scripts/build/libc/musl.sh b/scripts/build/libc/musl.sh
index 807b3bd..05da1d4 100644
--- a/scripts/build/libc/musl.sh
+++ b/scripts/build/libc/musl.sh
@@ -98,7 +98,8 @@ musl_backend_once() {
# host : same as --target
# target : the machine musl runs on
CT_DoExecLog CFG \
- CFLAGS="${extra_cflags[*]}" \
+ CFLAGS="${CT_TARGET_CFLAGS} ${extra_cflags[*]}" \
+ LDFLAGS="${CT_TARGET_LDFLAGS}" \
CROSS_COMPILE="${CT_TARGET}-" \
${CONFIG_SHELL} \
${src_dir}/configure \
diff --git a/scripts/build/libc/newlib.sh b/scripts/build/libc/newlib.sh
index 95ab791..ef0b16c 100644
--- a/scripts/build/libc/newlib.sh
+++ b/scripts/build/libc/newlib.sh
@@ -63,6 +63,7 @@ GLOBAL_ATEXIT:newlib-global-atexit
LITE_EXIT:lite-exit
REENT_SMALL:newlib-reent-small
MULTITHREAD:newlib-multithread
+RETARGETABLE_LOCKING:newlib-retargetable-locking
WIDE_ORIENT:newlib-wide-orient
UNBUF_STREAM_OPT:newlib-unbuf-stream-opt
ENABLE_TARGET_OPTSPACE:target-optspace