On 5/10/21 11:01 AM, Eric Botcazou wrote:
Ready for master?
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: ada/
gnatvsn.o: in function `gnatvsn__gnat_version_string':
/home/eric/cvs/gcc/gcc/ada/gnatvsn.adb:67: undefined reference to
`version_string'
/usr/lib64/gcc/x86_64-suse-linux/7/../../../../x86_64-suse-linux/bin/ld: /
home/eric/cvs/gcc/gcc/ada/gnatvsn.adb:69: undefined reference to
`version_string'
collect2: error: ld returned 1 exit status
make[3]: *** [/home/eric/cvs/gcc/gcc/ada/gcc-interface/Make-lang.in:691:
gnatbind] Error 1
make[3]: *** Waiting for unfinished jobs....
rm gcov.pod fsf-funding.pod lto-dump.pod gfdl.pod gpl.pod cpp.pod gcov-
dump.pod gcc.pod gcov-tool.pod
make[3]: Leaving directory '/home/eric/build/gcc/native/gcc'
make[2]: *** [Makefile:4781: all-stage1-gcc] Error 2
ada/gnatvsn.adb imports version_string from version.c
Sorry for the breakage. Apparently, we'll still need a version.c file in ada
folder (as it's imported in gcc/ada/gnatvsn.adb
). Using the attached patch I get to:
../../gnatbind -I../rts -I. -I/home/marxin/Programming/gcc/gcc/ada -I- -I../rts
-I. -I/home/marxin/Programming/gcc/gcc/ada -static -x -x
/dev/shm/objdir/gcc/ada/tools/gnatclean.ali
../../gnatlink -v gnatcmd -o ../../gnat \
--GCC="../../xgcc -B../../ -I- -I../rts -I. -I/home/marxin/Programming/gcc/gcc/ada"
--LINK="../../xg++ -B../../ -B../../../x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-B../../../x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-L../../../x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-L../../../x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs -static-libstdc++ -static-libgcc
-static-libstdc++ -static-libgcc " ../link.o ../targext.o ../../ggc-none.o
../../libcommon-target.a ../../libcommon.a ../../../libcpp/libcpp.a ../rts/libgnat.a
../../../libbacktrace/.libs/libbacktrace.a ../../../libiberty/libiberty.a -no-pie
GNATLINK 12.0.0 20210510 (experimental)
Copyright (C) 1995-2021, Free Software Foundation, Inc.
xgcc -c -gnatA -gnatWb -gnatiw -B../../ -I- -I../rts -I.
-I/home/marxin/Programming/gcc/gcc/ada -gnatws
/dev/shm/objdir/gcc/ada/tools/b~gnatcmd.adb
/dev/shm/objdir/gcc/xg++ b~gnatcmd.o ../link.o ../targext.o ../../ggc-none.o
../rts/ada.o ../rts/a-charac.o ../rts/a-chlat1.o ../rts/interfac.o
../rts/system.o ../rts/s-addope.o ../rts/s-imgint.o ../rts/s-io.o
../rts/s-parame.o ../rts/s-crtl.o ../rts/i-cstrea.o ../rts/s-stoele.o
../rts/s-stache.o ../rts/s-strhas.o ../rts/s-htable.o ../rts/s-string.o
../rts/s-traent.o ../rts/s-unstyp.o ../rts/s-imguns.o ../rts/s-wchcon.o
../rts/s-wchjis.o ../rts/s-wchcnv.o ../rts/s-carun8.o ../rts/s-conca2.o
../rts/s-traceb.o ../rts/s-excdeb.o ../rts/s-valuti.o ../rts/s-valllu.o
../rts/s-vallli.o ../rts/s-wchstw.o ../rts/a-elchha.o ../rts/a-exctra.o
../rts/s-addima.o ../rts/s-bitops.o ../rts/s-boustr.o ../rts/s-casuti.o
../rts/s-exctab.o ../rts/a-contai.o ../rts/a-ioexce.o ../rts/a-string.o
../rts/a-strmap.o ../rts/a-stmaco.o ../rts/i-c.o ../rts/s-except.o
../rts/s-excmac.o ../rts/a-chahan.o ../rts/s-exctra.o ../rts/s-memory.o
../rts/s-mmap.o ../rts/s-mmauni.o ../rts/s-mmosin.o ../rts/s-objrea.o
../rts/s-dwalin.o ../rts/s-os_lib.o ../rts/s-secsta.o ../rts/s-soliin.o
../rts/s-soflin.o ../rts/s-stalib.o ../rts/s-trasym.o ../rts/a-except.o
../rts/a-assert.o ../rts/a-comlin.o ../rts/a-tags.o ../rts/a-stream.o
../rts/gnat.o ../rts/g-htable.o ../rts/g-os_lib.o ../rts/s-ficobl.o
../rts/s-finroo.o ../rts/a-finali.o ../rts/s-fileio.o ../rts/s-vaenu8.o
../rts/a-textio.o ../rts/s-assert.o ./debug.o ./types.o ./alloc.o ./gnatvsn.o
./hostparm.o ./opt.o ./csets.o ./output.o ./rident.o ./table.o ./widechar.o
./namet.o ./fmap.o ./sdefault.o ./targparm.o ./osint.o ./switch.o ./usage.o
./gnatcmd.o ../../libcommon-target.a ../../libcommon.a ../../../libcpp/libcpp.a
../rts/libgnat.a ../../../libbacktrace/.libs/libbacktrace.a
../../../libiberty/libiberty.a -no-pie -o ../../gnat -L../rts/ -L./
-L/home/marxin/Programming/gcc/gcc/ada/
-L/home/marxin/bin/gcc/lib64/gcc/x86_64-pc-linux-gnu/12.0.0/adalib/
/dev/shm/objdir/gcc/ada/rts/libgnat.a -ldl -B../../
-B../../../x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-B../../../x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs
-L../../../x86_64-pc-linux-gnu/libstdc++-v3/src/.libs
-L../../../x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs -static-libstdc++
-static-libgcc -static-libstdc++ -static-libgcc
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld:
./gnatvsn.o: in function `gnatvsn__gnat_version_string':
/home/marxin/Programming/gcc/gcc/ada/gnatvsn.adb:69: undefined reference to
`gnat_version_string'
/usr/lib64/gcc/x86_64-suse-linux/10/../../../../x86_64-suse-linux/bin/ld:
/home/marxin/Programming/gcc/gcc/ada/gnatvsn.adb:67: undefined reference to
`gnat_version_string'
collect2: error: ld returned 1 exit status
Do you know Eric where version.o needs to be added to be included in the
problematic command line?
Thanks,
Martin
>From ba25e961ae05e769c355e8d9ed48da457826a129 Mon Sep 17 00:00:00 2001
From: Martin Liska <mli...@suse.cz>
Date: Mon, 10 May 2021 10:22:43 +0200
Subject: [PATCH] Fix missing version_string in Ada.
---
gcc/ada/Make-generated.in | 2 +-
gcc/ada/gcc-interface/Make-lang.in | 2 ++
gcc/ada/gcc-interface/Makefile.in | 6 +++---
gcc/ada/gnatvsn.adb | 2 +-
gcc/ada/version.c | 34 ++++++++++++++++++++++++++++++
5 files changed, 41 insertions(+), 5 deletions(-)
create mode 100644 gcc/ada/version.c
diff --git a/gcc/ada/Make-generated.in b/gcc/ada/Make-generated.in
index 237444c7a26..3a65da9b962 100644
--- a/gcc/ada/Make-generated.in
+++ b/gcc/ada/Make-generated.in
@@ -87,7 +87,7 @@ ada/stamp-snames : ada/snames.ads-tmpl ada/snames.adb-tmpl ada/snames.h-tmpl ada
touch ada/stamp-snames
ada/sdefault.adb: ada/stamp-sdefault ; @true
-ada/stamp-sdefault : $(srcdir)/version.c Makefile
+ada/stamp-sdefault : $(srcdir)/ada/version.c Makefile
$(ECHO) "pragma Style_Checks (Off);" >tmp-sdefault.adb
$(ECHO) "with Osint; use Osint;" >>tmp-sdefault.adb
$(ECHO) "package body Sdefault is" >>tmp-sdefault.adb
diff --git a/gcc/ada/gcc-interface/Make-lang.in b/gcc/ada/gcc-interface/Make-lang.in
index 969022e21a7..2fb87c74d6a 100644
--- a/gcc/ada/gcc-interface/Make-lang.in
+++ b/gcc/ada/gcc-interface/Make-lang.in
@@ -491,6 +491,7 @@ GNAT_ADA_OBJS = \
ada/usage.o \
ada/validsw.o \
ada/vast.o \
+ ada/version.o \
ada/warnsw.o \
ada/widechar.o
@@ -648,6 +649,7 @@ GNATBIND_OBJS = \
ada/uintp.o \
ada/uname.o \
ada/urealp.o \
+ ada/version.o \
ada/widechar.o
# Language-independent object files.
diff --git a/gcc/ada/gcc-interface/Makefile.in b/gcc/ada/gcc-interface/Makefile.in
index 333e2035455..b8e6b214c53 100644
--- a/gcc/ada/gcc-interface/Makefile.in
+++ b/gcc/ada/gcc-interface/Makefile.in
@@ -302,7 +302,7 @@ ADA_INCLUDES_FOR_SUBDIR = -I. -I$(fsrcdir)/ada
$(CC) -c $(ALL_ADAFLAGS) $(ADA_INCLUDES) $< $(OUTPUT_OPTION)
# how to regenerate this file
-Makefile: ../config.status $(srcdir)/ada/gcc-interface/Makefile.in $(srcdir)/ada/Makefile.in $(srcdir)/version.c
+Makefile: ../config.status $(srcdir)/ada/gcc-interface/Makefile.in $(srcdir)/ada/Makefile.in $(srcdir)/ada/version.c
cd ..; \
LANGUAGES="$(CONFIG_LANGUAGES)" \
CONFIG_HEADERS= \
@@ -319,7 +319,7 @@ GNATLINK_OBJS = gnatlink.o \
gnatvsn.o hostparm.o indepsw.o interfac.o i-c.o i-cstrin.o namet.o opt.o \
osint.o output.o rident.o s-exctab.o s-secsta.o s-stalib.o s-stoele.o \
sdefault.o snames.o stylesw.o switch.o system.o table.o targparm.o \
- types.o validsw.o widechar.o
+ types.o validsw.o version.o widechar.o
GNATMAKE_OBJS = a-except.o ali.o ali-util.o aspects.o s-casuti.o alloc.o \
atree.o binderr.o butil.o casing.o csets.o debug.o elists.o einfo.o errout.o \
@@ -331,7 +331,7 @@ GNATMAKE_OBJS = a-except.o ali.o ali-util.o aspects.o s-casuti.o alloc.o \
s-purexc.o s-htable.o scil_ll.o sem_aux.o sinfo.o sinput.o sinput-c.o \
snames.o stand.o stringt.o styleg.o stylesw.o system.o validsw.o \
switch.o switch-m.o table.o targparm.o tempdir.o types.o uintp.o \
- uname.o urealp.o usage.o widechar.o \
+ uname.o urealp.o usage.o version.o widechar.o \
seinfo.o einfo-entities.o einfo-utils.o sinfo-nodes.o sinfo-utils.o \
$(EXTRA_GNATMAKE_OBJS)
diff --git a/gcc/ada/gnatvsn.adb b/gcc/ada/gnatvsn.adb
index 578a1aa9743..d6d2a5a3ace 100644
--- a/gcc/ada/gnatvsn.adb
+++ b/gcc/ada/gnatvsn.adb
@@ -53,7 +53,7 @@ package body Gnatvsn is
-- version.c using the zero-based convention of the C language.
-- The size is not the real one, which does not matter since we will
-- check for the nul character in Gnat_Version_String.
- pragma Import (C, Version_String, "version_string");
+ pragma Import (C, Version_String, "gnat_version_string");
-------------------------
-- Gnat_Version_String --
diff --git a/gcc/ada/version.c b/gcc/ada/version.c
new file mode 100644
index 00000000000..e6cc6124040
--- /dev/null
+++ b/gcc/ada/version.c
@@ -0,0 +1,34 @@
+/****************************************************************************
+ * *
+ * GNAT COMPILER COMPONENTS *
+ * *
+ * V E R S I O N *
+ * *
+ * C Implementation File *
+ * *
+ * Copyright (C) 2021, Free Software Foundation, Inc. *
+ * *
+ * GNAT is free software; you can redistribute it and/or modify it under *
+ * terms of the GNU General Public License as published by the Free Soft- *
+ * ware Foundation; either version 3, or (at your option) any later ver- *
+ * sion. GNAT is distributed in the hope that it will be useful, but WITH- *
+ * OUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY *
+ * or FITNESS FOR A PARTICULAR PURPOSE. *
+ * *
+ * As a special exception under Section 7 of GPL version 3, you are granted *
+ * additional permissions described in the GCC Runtime Library Exception, *
+ * version 3.1, as published by the Free Software Foundation. *
+ * *
+ * You should have received a copy of the GNU General Public License and *
+ * a copy of the GCC Runtime Library Exception along with this program; *
+ * see the files COPYING3 and COPYING.RUNTIME respectively. If not, see *
+ * <http://www.gnu.org/licenses/>. *
+ * *
+ * GNAT was originally developed by the GNAT team at New York University. *
+ * Extensive contributions were provided by Ada Core Technologies Inc. *
+ * *
+ ****************************************************************************/
+
+#include "version.h"
+
+char gnat_version_string[] = version_string;
--
2.31.1