Patchwork gcc 4.8: use /lib/ for AArch64

login
register
mail settings
Submitter Marcin Juszkiewicz
Date May 27, 2013, 2:40 p.m.
Message ID <1369665656-20275-1-git-send-email-marcin.juszkiewicz@linaro.org>
Download mbox | patch
Permalink /patch/50569/
State New
Headers show

Comments

Marcin Juszkiewicz - May 27, 2013, 2:40 p.m.
Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
---
 meta/recipes-devtools/gcc/gcc-4.8.inc              |  1 +
 .../gcc/gcc-4.8/use-lib-for-aarch64.patch          | 23 ++++++++++++++++++++++
 2 files changed, 24 insertions(+)
 create mode 100644 meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
Khem Raj - May 27, 2013, 11:23 p.m.
On May 27, 2013, at 7:40 AM, Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> wrote:

> Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> ---
> meta/recipes-devtools/gcc/gcc-4.8.inc              |  1 +
> .../gcc/gcc-4.8/use-lib-for-aarch64.patch          | 23 ++++++++++++++++++++++
> 2 files changed, 24 insertions(+)
> create mode 100644 meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
> 
> diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc
> index a9786da..5142c0f 100644
> --- a/meta/recipes-devtools/gcc/gcc-4.8.inc
> +++ b/meta/recipes-devtools/gcc/gcc-4.8.inc
> @@ -66,6 +66,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
> 	   file://0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
> 	   file://0035-wcast-qual-PR-55383.patch \
> 	   file://gcc-4.8-PR56797.patch \
> +	   file://use-lib-for-aarch64.patch \
> 	  "
> SRC_URI[md5sum] = "e6040024eb9e761c3bea348d1fa5abb0"
> SRC_URI[sha256sum] = "b037fe5132b71ecad2ea7141ec92292b5d32427bf90fd90cde432b1d5abacc2c"
> diff --git a/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch b/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
> new file mode 100644
> index 0000000..a647e93
> --- /dev/null
> +++ b/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
> @@ -0,0 +1,23 @@
> +From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> +
> +AArch64 is built with /lib/ as prefix but GCC 4.8 tries to use /lib64/
> +path so build fails.
> +
> +It may affect builds when /lib64/ will be used but so far it is not
> +default.
> +

Marcin,

what is the multilib strategy for aarch64? i think using lib64 for 64bit and keep /lib for 32bit apps
would be ideal so you can keep the existing apps running. In OE we have convoluted x86_64 where
when not using mutlilib it uses /lib for 64bit apps and when doing multilib it does /lib64 for default 64bit apps and /lib
for 32bit apps its quite confusing. For arm lets not follow those footsteps and use /lib64 for 64bit from
the onset and then multilib can come later and will fit in nicely.


> +Upstream-status: Inappropriate [OE specific]
> +---
> + gcc/config/aarch64/t-aarch64-linux |    2 +-
> + 1 file changed, 1 insertion(+), 1 deletion(-)
> +
> +--- gcc-linaro-4.8-2013.04.orig/gcc/config/aarch64/t-aarch64-linux
> ++++ gcc-linaro-4.8-2013.04/gcc/config/aarch64/t-aarch64-linux
> +@@ -20,6 +20,6 @@
> + 
> + LIB1ASMSRC   = aarch64/lib1funcs.asm
> + LIB1ASMFUNCS = _aarch64_sync_cache_range
> + 
> + AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
> +-MULTILIB_OSDIRNAMES = .=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
> ++MULTILIB_OSDIRNAMES = .=../lib$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
> -- 
> 1.8.1.2
> 
> _______________________________________________
> Openembedded-core mailing list
> Openembedded-core@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-core
Richard Purdie - May 28, 2013, 8:07 a.m.
On Mon, 2013-05-27 at 16:23 -0700, Khem Raj wrote:
> On May 27, 2013, at 7:40 AM, Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> wrote:
> 
> > Signed-off-by: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> > ---
> > meta/recipes-devtools/gcc/gcc-4.8.inc              |  1 +
> > .../gcc/gcc-4.8/use-lib-for-aarch64.patch          | 23 ++++++++++++++++++++++
> > 2 files changed, 24 insertions(+)
> > create mode 100644 meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
> > 
> > diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc
> > index a9786da..5142c0f 100644
> > --- a/meta/recipes-devtools/gcc/gcc-4.8.inc
> > +++ b/meta/recipes-devtools/gcc/gcc-4.8.inc
> > @@ -66,6 +66,7 @@ SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
> > 	   file://0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
> > 	   file://0035-wcast-qual-PR-55383.patch \
> > 	   file://gcc-4.8-PR56797.patch \
> > +	   file://use-lib-for-aarch64.patch \
> > 	  "
> > SRC_URI[md5sum] = "e6040024eb9e761c3bea348d1fa5abb0"
> > SRC_URI[sha256sum] = "b037fe5132b71ecad2ea7141ec92292b5d32427bf90fd90cde432b1d5abacc2c"
> > diff --git a/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch b/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
> > new file mode 100644
> > index 0000000..a647e93
> > --- /dev/null
> > +++ b/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
> > @@ -0,0 +1,23 @@
> > +From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
> > +
> > +AArch64 is built with /lib/ as prefix but GCC 4.8 tries to use /lib64/
> > +path so build fails.
> > +
> > +It may affect builds when /lib64/ will be used but so far it is not
> > +default.
>
> what is the multilib strategy for aarch64? i think using lib64 for 64bit and keep /lib for 32bit apps
> would be ideal so you can keep the existing apps running. In OE we have convoluted x86_64 where
> when not using mutlilib it uses /lib for 64bit apps and when doing multilib it does /lib64 for default 64bit apps and /lib
> for 32bit apps its quite confusing. For arm lets not follow those footsteps and use /lib64 for 64bit from
> the onset and then multilib can come later and will fit in nicely.

In OE, the system is configurable to whatever you want. Why don't we
ensure that works for aarch64 like it does for everything else?

Cheers,

Richard
Marcin Juszkiewicz - May 28, 2013, 1:56 p.m.
W dniu 28.05.2013 01:23, Khem Raj pisze:
> On May 27, 2013, at 7:40 AM, Marcin Juszkiewicz
> <marcin.juszkiewicz@linaro.org> wrote:

>> +++ b/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
>> @@ -0,0 +1,23 @@
>> +From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
>> +
>> +AArch64 is built with /lib/ as prefix but GCC 4.8 tries to use /lib64/
>> +path so build fails.
>> +
>> +It may affect builds when /lib64/ will be used but so far it is not
>> +default.
>> +
> 
> Marcin,
> 
> what is the multilib strategy for aarch64? i think using lib64 for
> 64bit and keep /lib for 32bit apps would be ideal so you can keep the
> existing apps running. In OE we have convoluted x86_64 where when not
> using mutlilib it uses /lib for 64bit apps and when doing multilib it
> does /lib64 for default 64bit apps and /lib for 32bit apps its quite
> confusing. For arm lets not follow those footsteps and use /lib64 for
> 64bit from the onset and then multilib can come later and will fit in
> nicely.

I will leave that decision to Riku as new meta-linaro maintainer.

My view is that so far AArch64 is still in kind of "testing phase" rather
then fully used system. Switch to /lib64/ would require far more patches
(gcc-4.7, eglibc etc) than switching to /lib/ which is used since we
started with this architecture.
Khem Raj - May 28, 2013, 4:49 p.m.
On May 28, 2013, at 6:56 AM, Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org> wrote:

> W dniu 28.05.2013 01:23, Khem Raj pisze:
>> On May 27, 2013, at 7:40 AM, Marcin Juszkiewicz
>> <marcin.juszkiewicz@linaro.org> wrote:
> 
>>> +++ b/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
>>> @@ -0,0 +1,23 @@
>>> +From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
>>> +
>>> +AArch64 is built with /lib/ as prefix but GCC 4.8 tries to use /lib64/
>>> +path so build fails.
>>> +
>>> +It may affect builds when /lib64/ will be used but so far it is not
>>> +default.
>>> +
>> 
>> Marcin,
>> 
>> what is the multilib strategy for aarch64? i think using lib64 for
>> 64bit and keep /lib for 32bit apps would be ideal so you can keep the
>> existing apps running. In OE we have convoluted x86_64 where when not
>> using mutlilib it uses /lib for 64bit apps and when doing multilib it
>> does /lib64 for default 64bit apps and /lib for 32bit apps its quite
>> confusing. For arm lets not follow those footsteps and use /lib64 for
>> 64bit from the onset and then multilib can come later and will fit in
>> nicely.
> 
> I will leave that decision to Riku as new meta-linaro maintainer.
> 
> My view is that so far AArch64 is still in kind of "testing phase" rather
> then fully used system. Switch to /lib64/ would require far more patches
> (gcc-4.7, eglibc etc) than switching to /lib/ which is used since we
> started with this architecture.


This is beginning of aarch64 and whatever defaults you set now will be harder to change as time passes
by. As I said earlier, if multilib and keeping precompiled 32bit binaries running is not priority then its fine.

Patch

diff --git a/meta/recipes-devtools/gcc/gcc-4.8.inc b/meta/recipes-devtools/gcc/gcc-4.8.inc
index a9786da..5142c0f 100644
--- a/meta/recipes-devtools/gcc/gcc-4.8.inc
+++ b/meta/recipes-devtools/gcc/gcc-4.8.inc
@@ -66,6 +66,7 @@  SRC_URI = "${GNU_MIRROR}/gcc/gcc-${PV}/gcc-${PV}.tar.bz2 \
 	   file://0034-Use-the-multilib-config-files-from-B-instead-of-usin.patch \
 	   file://0035-wcast-qual-PR-55383.patch \
 	   file://gcc-4.8-PR56797.patch \
+	   file://use-lib-for-aarch64.patch \
 	  "
 SRC_URI[md5sum] = "e6040024eb9e761c3bea348d1fa5abb0"
 SRC_URI[sha256sum] = "b037fe5132b71ecad2ea7141ec92292b5d32427bf90fd90cde432b1d5abacc2c"
diff --git a/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch b/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
new file mode 100644
index 0000000..a647e93
--- /dev/null
+++ b/meta/recipes-devtools/gcc/gcc-4.8/use-lib-for-aarch64.patch
@@ -0,0 +1,23 @@ 
+From: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
+
+AArch64 is built with /lib/ as prefix but GCC 4.8 tries to use /lib64/
+path so build fails.
+
+It may affect builds when /lib64/ will be used but so far it is not
+default.
+
+Upstream-status: Inappropriate [OE specific]
+---
+ gcc/config/aarch64/t-aarch64-linux |    2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+--- gcc-linaro-4.8-2013.04.orig/gcc/config/aarch64/t-aarch64-linux
++++ gcc-linaro-4.8-2013.04/gcc/config/aarch64/t-aarch64-linux
+@@ -20,6 +20,6 @@
+ 
+ LIB1ASMSRC   = aarch64/lib1funcs.asm
+ LIB1ASMFUNCS = _aarch64_sync_cache_range
+ 
+ AARCH_BE = $(if $(findstring TARGET_BIG_ENDIAN_DEFAULT=1, $(tm_defines)),_be)
+-MULTILIB_OSDIRNAMES = .=../lib64$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)
++MULTILIB_OSDIRNAMES = .=../lib$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu)