summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
authorMichael Olbrich <m.olbrich@pengutronix.de>2012-03-24 11:51:49 +0100
committerMichael Olbrich <m.olbrich@pengutronix.de>2012-03-24 11:51:53 +0100
commit8602e821a6dcc5d9cc430d3f108345d2292eb171 (patch)
tree827efb3c713b1f42385f82080987257244b6b9e2 /scripts
parentf7d05a2a2d715e63e9abfb87876a57f7b1c809bb (diff)
downloadptxdist-8602e821a6dcc5d9cc430d3f108345d2292eb171.tar.gz
ptxdist-8602e821a6dcc5d9cc430d3f108345d2292eb171.tar.xz
be consistent when calling gcc to query toolchain data
This means always use the configured CFLAGS/CPPFLAGS Signed-off-by: Michael Olbrich <m.olbrich@pengutronix.de>
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/install_copy_toolchain.sh14
-rw-r--r--scripts/lib/ptxd_make_00-init.sh26
2 files changed, 26 insertions, 14 deletions
diff --git a/scripts/install_copy_toolchain.sh b/scripts/install_copy_toolchain.sh
index 726cc6171..7b91fc40d 100755
--- a/scripts/install_copy_toolchain.sh
+++ b/scripts/install_copy_toolchain.sh
@@ -53,11 +53,9 @@ ptxd_get_lib_path() {
local lib lib_dir lib_path extra_cflags
lib="${1}"
- extra_cppflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CPPFLAGS)"
- extra_cflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CFLAGS)"
# ask the compiler for the lib
- lib_path="$(${CC} ${extra_cppflags} ${extra_cflags} -print-file-name=${lib})"
+ lib_path="$(ptxd_cross_cc -print-file-name=${lib})"
if test "${lib_path}" = "${lib}"; then
echo "install_copy_toolchain_lib: ${lib} not found" >&2
return 1
@@ -79,11 +77,8 @@ ptxd_get_lib_path() {
#
ptxd_get_dl() {
local dl
- extra_cppflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CPPFLAGS)"
- extra_cflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CFLAGS)"
- dl="$(echo 'int main(void){return 0;}' | \
- ${CC} ${extra_cppflags} ${extra_cflags} -x c -o /dev/null -v - 2>&1 | \
+ dl="$(ptxd_cross_cc_v | \
sed -n -e 's/.* -dynamic-linker \([^ ]*\).*/\1/p')"
echo "${dl##*/}"
@@ -243,8 +238,7 @@ ptxd_install_toolchain_lib() {
_ptxd_get_sysroot_usr_by_sysroot() {
local sysroot
- sysroot="$(echo 'int main(void){return 0;}' | \
- ${CC} -x c -o /dev/null -v - 2>&1 | \
+ sysroot="$(ptxd_cross_cc_v | \
sed -ne "/.*collect2.*/s,.*--sysroot=\([^[:space:]]*\).*,\1,p")"
test -n "${sysroot}" || return 1
@@ -256,7 +250,7 @@ _ptxd_get_sysroot_usr_by_sysroot() {
_ptxd_get_sysroot_usr_by_progname() {
local prog_name
- prog_name="$(${CC} -print-prog-name=gcc)"
+ prog_name="$(ptxd_cross_cc -print-prog-name=gcc)"
case "${prog_name}" in
/*)
prog_name="$(ptxd_abspath ${prog_name%/bin/gcc})"
diff --git a/scripts/lib/ptxd_make_00-init.sh b/scripts/lib/ptxd_make_00-init.sh
index da72d2950..eed2a2e4d 100644
--- a/scripts/lib/ptxd_make_00-init.sh
+++ b/scripts/lib/ptxd_make_00-init.sh
@@ -56,6 +56,27 @@ ptxd_init_arch() {
export PTXDIST_IPKG_ARCH_STRING
}
+#
+# run cross-gcc with flags
+#
+ptxd_cross_cc() {
+ local compiler_prefix extra_cppflags extra_cflags
+ compiler_prefix="$(ptxd_get_ptxconf PTXCONF_COMPILER_PREFIX)"
+ extra_cppflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CPPFLAGS)"
+ extra_cflags="$(ptxd_get_ptxconf PTXCONF_TARGET_EXTRA_CFLAGS)"
+
+ ${compiler_prefix}gcc ${extra_cppflags} ${extra_cflags} "${@}"
+}
+export -f ptxd_cross_cc
+
+#
+# run cross-gcc with flags and -v
+#
+ptxd_cross_cc_v() {
+ echo 'int main(void){return 0;}' | \
+ ptxd_cross_cc -x c -o /dev/null -v - 2>&1
+}
+export -f ptxd_cross_cc_v
#
# figure out the toolchain's sysroot
@@ -63,8 +84,6 @@ ptxd_init_arch() {
# out: PTXDIST_SYSROOT_TOOLCHAIN
#
ptxd_init_sysroot_toolchain() {
- local compiler_prefix="$(ptxd_get_ptxconf PTXCONF_COMPILER_PREFIX)"
-
#
# no compiler prefix specified means using plain "gcc"
# which comes from the distribution, so no sysroot here
@@ -74,8 +93,7 @@ ptxd_init_sysroot_toolchain() {
else
local sysroot
- sysroot="$(echo 'int main(void){return 0;}' | \
- ${compiler_prefix}gcc -x c -o /dev/null -v - 2>&1 | \
+ sysroot="$(ptxd_cross_cc_v | \
sed -ne "/.*collect2.*/s,.*--sysroot=\([^[:space:]]*\).*,\1,p" && \
check_pipe_status)"