linux-snps-arc.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] gcc: Apply multilib fix to ARC as well
@ 2021-06-20 18:51 Alexey Brodkin
  2021-06-20 21:44 ` Khem Raj
  0 siblings, 1 reply; 2+ messages in thread
From: Alexey Brodkin @ 2021-06-20 18:51 UTC (permalink / raw)
  To: openembedded-core; +Cc: linux-snps-arc, Khem Raj, Alexey Brodkin

W/o that hack target GCC assume existence of per-mcpu folders,
which are missing.

In particular G++ failed to find "bits/c++config.h":
------------------>8------------------
 root@hsdk:~# cat test.cc
 #include <cstdlib>

 int myfunc(void)
 {
 }

 root@hsdk:~# g++ -c test.cc -v
 Using built-in specs.
 COLLECT_GCC=g++
 Target: arc-oe-linux
 Configured with: ../../../../../../work-shared/gcc-11.1.0-r0/gcc-11.1.0/configure --build=x86_64-linux --host=arc-oe-linux --target=arc-oe-linux --prefix=/usr --exec_prefix=/usr -x
 Thread model: posix
 Supported LTO compression algorithms: zlib
 gcc version 11.1.1 20210523 (GCC)
 COLLECT_GCC_OPTIONS='-c' '-v' '-shared-libgcc' '-mcpu=hs38_linux'
  /usr/libexec/gcc/arc-oe-linux/11.1.1/cc1plus -quiet -v -imultilib hs38_linux -D_GNU_SOURCE test.cc -quiet -dumpbase test.cc -dumpbase-ext .cc -mcpu=hs38_linux -version -o /tmp/ccs
 GNU C++17 (GCC) version 11.1.1 20210523 (arc-oe-linux)
         compiled by GNU C version 11.1.1 20210523, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version none
 GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129242
 ignoring nonexistent directory "/usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1/arc-oe-linux/hs38_linux"
 ignoring nonexistent directory "/usr/lib/arc-oe-linux/11.1.1/include"
 ignoring nonexistent directory "/usr/local/include"
 ignoring nonexistent directory "/usr/lib/gcc/arc-oe-linux/11.1.1/../../../../arc-oe-linux/include"
 #include "..." search starts here:
 #include <...> search starts here:
  /usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1
  /usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1/backward
  /usr/lib/gcc/arc-oe-linux/11.1.1/include
  /usr/lib/gcc/arc-oe-linux/11.1.1/include-fixed
  /usr/include
 End of search list.
 GNU C++17 (GCC) version 11.1.1 20210523 (arc-oe-linux)
         compiled by GNU C version 11.1.1 20210523, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version none
 GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129242
 Compiler executable checksum: 6df2f07a822bfbbb80a61414b712b75d
 In file included from test.cc:1:
 /usr/include/c++/11.1.1/cstdlib:41:10: fatal error: bits/c++config.h: No such file or directory
    41 | #include <bits/c++config.h>
       |          ^~~~~~~~~~~~~~~~~~
 compilation terminated.
------------------>8------------------

Note "ignoring nonexistent directory "/usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1/arc-oe-linux/hs38_linux"
message which is being used by GCC due to the fact of implicit "-mcpu=hs38_linux".

In fact this header "bits/c++config.h" is located in "/usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1/arc-oe-linux"
on target.

Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
---
 .../gcc/gcc/0004-64-bit-multilib-hack.patch        | 23 +++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch b/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
index 789f57343b..8184e68743 100644
--- a/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
+++ b/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
@@ -1,4 +1,4 @@
-From 28e7c312b1292ca216d4b54ec9f6b7ac055907a8 Mon Sep 17 00:00:00 2001
+From 2fa5c93641b75a662839c1b6eee172b6c481c70e Mon Sep 17 00:00:00 2001
 From: Khem Raj <raj.khem@gmail.com>
 Date: Fri, 29 Mar 2013 09:10:06 +0400
 Subject: [PATCH] 64-bit multilib hack.
@@ -19,7 +19,7 @@ and be able to patch these entries with a complete set of correct paths but this
 don't have such code at this point. This is something the target gcc recipe should do
 and override these platform defaults in its build config.
 
-Do same for riscv64 and aarch64
+Do same for riscv64, aarch64 & arc
 
 RP 15/8/11
 
@@ -30,11 +30,12 @@ Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
 Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
 ---
  gcc/config/aarch64/t-aarch64-linux |  8 ++++----
+ gcc/config/arc/t-multilib-linux    |  4 ++--
  gcc/config/i386/t-linux64          |  6 ++----
  gcc/config/mips/t-linux64          | 10 +++-------
  gcc/config/riscv/t-linux           |  6 ++++--
  gcc/config/rs6000/t-linux64        |  5 ++---
- 5 files changed, 15 insertions(+), 20 deletions(-)
+ 6 files changed, 17 insertions(+), 22 deletions(-)
 
 diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
 index 241b0ef20b6..a7dadb2d64f 100644
@@ -53,6 +54,22 @@ index 241b0ef20b6..a7dadb2d64f 100644
  
 -MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
 +#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
+diff --git a/gcc/config/arc/t-multilib-linux b/gcc/config/arc/t-multilib-linux
+index fc3fff640a2..d58e28f6df8 100644
+--- a/gcc/config/arc/t-multilib-linux
++++ b/gcc/config/arc/t-multilib-linux
+@@ -16,9 +16,9 @@
+ # along with GCC; see the file COPYING3.  If not see
+ # <http://www.gnu.org/licenses/>.
+ 
+-MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
++#MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
+ 
+-MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
++#MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
+ 
+ # Aliases:
+ MULTILIB_MATCHES += mcpu?arc700=mA7
 diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
 index d288b093522..7b5980a9d21 100644
 --- a/gcc/config/i386/t-linux64
-- 
2.16.2


_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] gcc: Apply multilib fix to ARC as well
  2021-06-20 18:51 [PATCH] gcc: Apply multilib fix to ARC as well Alexey Brodkin
@ 2021-06-20 21:44 ` Khem Raj
  0 siblings, 0 replies; 2+ messages in thread
From: Khem Raj @ 2021-06-20 21:44 UTC (permalink / raw)
  To: Alexey Brodkin
  Cc: Patches and discussions about the oe-core layer, linux-snps-arc

this looks fine,

On Sun, Jun 20, 2021 at 11:52 AM Alexey Brodkin
<Alexey.Brodkin@synopsys.com> wrote:
>
> W/o that hack target GCC assume existence of per-mcpu folders,
> which are missing.
>
> In particular G++ failed to find "bits/c++config.h":
> ------------------>8------------------
>  root@hsdk:~# cat test.cc
>  #include <cstdlib>
>
>  int myfunc(void)
>  {
>  }
>
>  root@hsdk:~# g++ -c test.cc -v
>  Using built-in specs.
>  COLLECT_GCC=g++
>  Target: arc-oe-linux
>  Configured with: ../../../../../../work-shared/gcc-11.1.0-r0/gcc-11.1.0/configure --build=x86_64-linux --host=arc-oe-linux --target=arc-oe-linux --prefix=/usr --exec_prefix=/usr -x
>  Thread model: posix
>  Supported LTO compression algorithms: zlib
>  gcc version 11.1.1 20210523 (GCC)
>  COLLECT_GCC_OPTIONS='-c' '-v' '-shared-libgcc' '-mcpu=hs38_linux'
>   /usr/libexec/gcc/arc-oe-linux/11.1.1/cc1plus -quiet -v -imultilib hs38_linux -D_GNU_SOURCE test.cc -quiet -dumpbase test.cc -dumpbase-ext .cc -mcpu=hs38_linux -version -o /tmp/ccs
>  GNU C++17 (GCC) version 11.1.1 20210523 (arc-oe-linux)
>          compiled by GNU C version 11.1.1 20210523, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version none
>  GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129242
>  ignoring nonexistent directory "/usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1/arc-oe-linux/hs38_linux"
>  ignoring nonexistent directory "/usr/lib/arc-oe-linux/11.1.1/include"
>  ignoring nonexistent directory "/usr/local/include"
>  ignoring nonexistent directory "/usr/lib/gcc/arc-oe-linux/11.1.1/../../../../arc-oe-linux/include"
>  #include "..." search starts here:
>  #include <...> search starts here:
>   /usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1
>   /usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1/backward
>   /usr/lib/gcc/arc-oe-linux/11.1.1/include
>   /usr/lib/gcc/arc-oe-linux/11.1.1/include-fixed
>   /usr/include
>  End of search list.
>  GNU C++17 (GCC) version 11.1.1 20210523 (arc-oe-linux)
>          compiled by GNU C version 11.1.1 20210523, GMP version 6.2.1, MPFR version 4.1.0, MPC version 1.2.1, isl version none
>  GGC heuristics: --param ggc-min-expand=99 --param ggc-min-heapsize=129242
>  Compiler executable checksum: 6df2f07a822bfbbb80a61414b712b75d
>  In file included from test.cc:1:
>  /usr/include/c++/11.1.1/cstdlib:41:10: fatal error: bits/c++config.h: No such file or directory
>     41 | #include <bits/c++config.h>
>        |          ^~~~~~~~~~~~~~~~~~
>  compilation terminated.
> ------------------>8------------------
>
> Note "ignoring nonexistent directory "/usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1/arc-oe-linux/hs38_linux"
> message which is being used by GCC due to the fact of implicit "-mcpu=hs38_linux".
>
> In fact this header "bits/c++config.h" is located in "/usr/lib/gcc/arc-oe-linux/11.1.1/../../../../include/c++/11.1.1/arc-oe-linux"
> on target.
>
> Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com>
> ---
>  .../gcc/gcc/0004-64-bit-multilib-hack.patch        | 23 +++++++++++++++++++---
>  1 file changed, 20 insertions(+), 3 deletions(-)
>
> diff --git a/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch b/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
> index 789f57343b..8184e68743 100644
> --- a/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
> +++ b/meta/recipes-devtools/gcc/gcc/0004-64-bit-multilib-hack.patch
> @@ -1,4 +1,4 @@
> -From 28e7c312b1292ca216d4b54ec9f6b7ac055907a8 Mon Sep 17 00:00:00 2001
> +From 2fa5c93641b75a662839c1b6eee172b6c481c70e Mon Sep 17 00:00:00 2001
>  From: Khem Raj <raj.khem@gmail.com>
>  Date: Fri, 29 Mar 2013 09:10:06 +0400
>  Subject: [PATCH] 64-bit multilib hack.
> @@ -19,7 +19,7 @@ and be able to patch these entries with a complete set of correct paths but this
>  don't have such code at this point. This is something the target gcc recipe should do
>  and override these platform defaults in its build config.
>
> -Do same for riscv64 and aarch64
> +Do same for riscv64, aarch64 & arc
>
>  RP 15/8/11
>
> @@ -30,11 +30,12 @@ Signed-off-by: Elvis Dowson <elvis.dowson@gmail.com>
>  Signed-off-by: Mark Hatle <mark.hatle@windriver.com>
>  ---
>   gcc/config/aarch64/t-aarch64-linux |  8 ++++----
> + gcc/config/arc/t-multilib-linux    |  4 ++--
>   gcc/config/i386/t-linux64          |  6 ++----
>   gcc/config/mips/t-linux64          | 10 +++-------
>   gcc/config/riscv/t-linux           |  6 ++++--
>   gcc/config/rs6000/t-linux64        |  5 ++---
> - 5 files changed, 15 insertions(+), 20 deletions(-)
> + 6 files changed, 17 insertions(+), 22 deletions(-)
>
>  diff --git a/gcc/config/aarch64/t-aarch64-linux b/gcc/config/aarch64/t-aarch64-linux
>  index 241b0ef20b6..a7dadb2d64f 100644
> @@ -53,6 +54,22 @@ index 241b0ef20b6..a7dadb2d64f 100644
>
>  -MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
>  +#MULTILIB_OSDIRNAMES += mabi.ilp32=../libilp32$(call if_multiarch,:aarch64$(AARCH_BE)-linux-gnu_ilp32)
> +diff --git a/gcc/config/arc/t-multilib-linux b/gcc/config/arc/t-multilib-linux
> +index fc3fff640a2..d58e28f6df8 100644
> +--- a/gcc/config/arc/t-multilib-linux
> ++++ b/gcc/config/arc/t-multilib-linux
> +@@ -16,9 +16,9 @@
> + # along with GCC; see the file COPYING3.  If not see
> + # <http://www.gnu.org/licenses/>.
> +
> +-MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
> ++#MULTILIB_OPTIONS = mcpu=hs/mcpu=archs/mcpu=hs38/mcpu=hs38_linux/mcpu=arc700/mcpu=nps400
> +
> +-MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
> ++#MULTILIB_DIRNAMES = hs archs hs38 hs38_linux arc700 nps400
> +
> + # Aliases:
> + MULTILIB_MATCHES += mcpu?arc700=mA7
>  diff --git a/gcc/config/i386/t-linux64 b/gcc/config/i386/t-linux64
>  index d288b093522..7b5980a9d21 100644
>  --- a/gcc/config/i386/t-linux64
> --
> 2.16.2
>

_______________________________________________
linux-snps-arc mailing list
linux-snps-arc@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-snps-arc

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2021-06-20 21:45 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-06-20 18:51 [PATCH] gcc: Apply multilib fix to ARC as well Alexey Brodkin
2021-06-20 21:44 ` Khem Raj

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).