This is the mail archive of the newlib@sourceware.org mailing list for the newlib project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[PATCH][libgloss][ARM] Fix newlib arm/aarch64 multi-do build when relative paths to configure are used


Hi All,

My previous multi-build implementation was copying the config.status from the parent
multilib directory when building the different semihosting variants. It did so because
the configuration doesn't change. However when you use a relative path to configure it
turns out that the paths inside the config.status are also relative.

To fix this, the srcdir is adjusted from the initial configuration instead of copying it.

Tested on aarch64-none-elf and arm-none-eabi.

Ok for master?

PS. I don't have commit right so if OK can someone apply?

Thanks,
Tamar
From 803409fafbd4e68f63d283a57958ce76668ba442 Mon Sep 17 00:00:00 2001
From: Tamar Christina <tamar.christina@arm.com>
Date: Tue, 26 Sep 2017 14:47:04 +0100
Subject: [PATCH] The previous multi-build implementation was copying the
 config.status from the parent multilib directory when building the different
 semihosting variants. It did so because the configuration doesn't change.
 However when you use a relative path to configure it turns out that the paths
 inside the config.status are also relative.

To fix this, the srcdir is adjusted from the initial configuration instead of copying it.

Tested on aarch64-none-elf and arm-none-eabi.

Signed-off-by: Tamar Christina <tamar.christina@arm.com>
---
 libgloss/multi-build.in | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libgloss/multi-build.in b/libgloss/multi-build.in
index 1403eb35e..52aeeec26 100644
--- a/libgloss/multi-build.in
+++ b/libgloss/multi-build.in
@@ -17,9 +17,9 @@ multi-do:
 	      destpre=`echo $${rootpre}/$${dir}`/; export destpre; \
 	      if ! test -d $${destpre} ; then \
 		mkdir -p $${destpre}; \
-		cp config.status $${destpre}; \
 		cd $${destpre}; \
-		$(SHELL) config.status; \
+		config_cmd=`../config.status --config | sed -re "s:--srcdir=([^/]):--srcdir=../\1:"`; \
+		$(SHELL) -c "$(SHELL) $${srcrootpre}/configure $${config_cmd}";\
 		sed -e "s:^MULTIDIRS[[:space:]]*+=.*$$:MULTIDIRS = :" \
 		    -e "s:^MULTILIBNAME[[:space:]]*=.*$$:MULTILIBNAME = MULTIDIR_$${dir}_NAME:" \
 		    -e "s:^MULTI_FLAGS_FOR_TARGET[[:space:]]*=.*$$:MULTI_FLAGS_FOR_TARGET = MULTIDIR_$${dir}_FLAGS:" \
-- 
2.14.1


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]