#29 enable GDC on ppc64le and aarch64
Merged 2 years ago by kalev. Opened 2 years ago by kalev.
rpms/ kalev/gcc f35-gdc  into  f35

file modified
+5 -2
@@ -4,7 +4,7 @@ 

  %global gcc_major 11

  # Note, gcc_release must be integer, if you want to add suffixes to

  # %%{release}, append them after %%{gcc_release} on Release: line.

- %global gcc_release 2

+ %global gcc_release 3

  %global nvptx_tools_gitrev 5f6f343a302d620b0868edab376c00b15741e39e

  %global newlib_cygwin_gitrev 50e2a63b04bdd018484605fbb954fd1bd5147fa0

  %global _unpackaged_files_terminate_build 0
@@ -45,7 +45,7 @@ 

  %else

  %global build_go 0

  %endif

- %ifarch %{ix86} x86_64 %{arm} %{mips} s390 s390x riscv64

+ %ifarch %{ix86} x86_64 %{arm} aarch64 %{mips} s390 s390x riscv64

  %global build_d 1

  %else

  %global build_d 0
@@ -3150,6 +3150,9 @@ 

  %endif

  

  %changelog

+ * Wed Sep 07 2022 Kalev Lember <klember@redhat.com> 11.3.1-3

+ - enable GDC on aarch64

+ 

  * Thu Apr 21 2022 Jakub Jelinek <jakub@redhat.com> 11.3.1-2

  - update from releases/gcc-11-branch

    - PRs debug/105203, gcov-profile/105282, libstdc++/105324, target/105257

This should help bootstrap GDC on F36+ where the GDC version shipped
with gcc 12 requires a working GDC compiler to build itself.

For aarch64, why not, but I don't see how this can work on powerpc.
power--linux*)
LIBPHOBOS_SUPPORTED=yes
LIBDRUNTIME_ONLY=yes
I believe due to the misdesigned IBM double double the libphobos support just isn't there.
I bet it might be possible to add it on powerpc64le-linux when configured with -mabi=ieeelongdouble by default (which is what we do on Fedora 36 and later), but somebody needs to do the upstream libphobos work for that.

Oh, I totally missed that part, but I think it should be fine because we should still get a working gdc on ppc64le which is hopefully enough to bootstrap newer gdc on Fedora 36 and later. Yes, it wouldn't have libphobos, but that can come later (I think?) as long as the base compiler is bootstrapped.

Let me play with this a bit more and see if I can get newer gdc to actually build against system gdc that's missing libphobos.

(It's all mostly drive-by work because I randomly noticed that gdc in gcc 12 requires older gdc to bootstrap and Fedora 35 is going EOL soon which then makes it much harder to bring up new arches.)

Build failed. More information on how to proceed and troubleshoot errors available at https://fedoraproject.org/wiki/Zuul-based-ci

OK, I've now done the following bootstrap sequence in COPR:

1) Enable gdc on ppc64le and aarch64 (this PR) in F35 gcc 11
2) Enable gdc on ppc64le and aarch64 in gcc 12, build it with the previously built F35 gcc 11
3) Re-build the same gcc 12 against itself

https://copr.fedorainfracloud.org/coprs/kalev/gdc_bootstrap/builds/

Looks like this results in a gdc compiler that can successfully build itself at the very least (I haven't tested it further). And that was exactly where I wanted to get with this PR -- to get a gdc that can build itself so that we wouldn't have to bootstrap it from cross compiler binaries or whatever in the future when we don't have access to F35 any more.

Is it OK if I go ahead and do the same bootstrap as official builds in koji in a side tag (and let you take a look before merging to make sure I didn't mess something up)?

rebased onto 90d8902

2 years ago

OK, I've updated the PR to only add aarch64 after discussing this with Jakub on IRC and I'll take care of the bootstrap builds in side tags. Jakub filed https://gcc.gnu.org/PR106832 for the D ppc64le support upstream.

Pull-Request has been merged by kalev

2 years ago

Build succeeded.

Metadata