aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTristan Gingold <tgingold@free.fr>2020-04-10 10:44:39 +0200
committerTristan Gingold <tgingold@free.fr>2020-04-10 10:44:39 +0200
commit5071e39d5dd239577dae40782a7dc69033e8920c (patch)
tree05c701abbc90ce5401be412ecce392cd6b695fae
parentbb75c67563d6dc8920507909779f394d6760dd81 (diff)
downloadghdl-5071e39d5dd239577dae40782a7dc69033e8920c.tar.gz
ghdl-5071e39d5dd239577dae40782a7dc69033e8920c.tar.bz2
ghdl-5071e39d5dd239577dae40782a7dc69033e8920c.zip
grt and ghdldrv: extract grt-exec.lst from grt.lst. For #640
-rw-r--r--Makefile.in4
-rw-r--r--src/ghdldrv/ghdldrv.adb11
-rw-r--r--src/grt/Makefile.inc8
3 files changed, 18 insertions, 5 deletions
diff --git a/Makefile.in b/Makefile.in
index d692ce123..a025c9e4c 100644
--- a/Makefile.in
+++ b/Makefile.in
@@ -455,9 +455,10 @@ ghwlib.o: $(srcdir)/src/grt/ghwlib.c $(srcdir)/src/grt/ghwlib.h
############### grt #####################################################
-install.grt: $(libdirsuffix)/libgrt.a $(libdirsuffix)/grt.lst install.dirs
+install.grt: $(libdirsuffix)/libgrt.a $(libdirsuffix)/grt.lst $(libdirsuffix)/grt-exec.lst install.dirs
$(INSTALL_DATA) $(libdirsuffix)/libgrt.a $(DESTDIR)$(VHDL_LIB_DIR)/libgrt.a
$(INSTALL_DATA) $(libdirsuffix)/grt.lst $(DESTDIR)$(VHDL_LIB_DIR)/grt.lst
+ $(INSTALL_DATA) $(libdirsuffix)/grt-exec.lst $(DESTDIR)$(VHDL_LIB_DIR)/grt-exec.lst
$(INSTALL_DATA) $(GRTSRCDIR)/grt.ver $(DESTDIR)$(VHDL_LIB_DIR)/grt.ver
test "x$(LIBBACKTRACE)" = x || test "x$(backend)" = xgcc || \
$(INSTALL_DATA) $(LIBBACKTRACE) $(DESTDIR)$(VHDL_LIB_DIR)/libbacktrace.a
@@ -465,6 +466,7 @@ install.grt: $(libdirsuffix)/libgrt.a $(libdirsuffix)/grt.lst install.dirs
uninstall.grt:
$(RM) $(DESTDIR)$(VHDL_LIB_DIR)/libgrt.a
$(RM) $(DESTDIR)$(VHDL_LIB_DIR)/grt.lst
+ $(RM) $(DESTDIR)$(VHDL_LIB_DIR)/grt-exec.lst
$(RM) $(DESTDIR)$(VHDL_LIB_DIR)/grt.ver
$(RM) $(DESTDIR)$(VHDL_LIB_DIR)/libbacktrace.a
diff --git a/src/ghdldrv/ghdldrv.adb b/src/ghdldrv/ghdldrv.adb
index c382f22bf..e15123ec6 100644
--- a/src/ghdldrv/ghdldrv.adb
+++ b/src/ghdldrv/ghdldrv.adb
@@ -1013,6 +1013,13 @@ package body Ghdldrv is
end loop;
end Bind_Anaelab;
+ -- Add PFX.lst from the install lib directory.
+ procedure Add_Lib_File_List (Pfx : String) is
+ begin
+ Add_File_List (Get_Machine_Path_Prefix & Directory_Separator
+ & Pfx & List_Suffix, False);
+ end Add_Lib_File_List;
+
procedure Link (Add_Std : Boolean; Disp_Only : Boolean)
is
Last_File : Natural;
@@ -1024,8 +1031,8 @@ package body Ghdldrv is
Add_File_List (Filelist_Name.all, True);
end if;
Last_File := Filelist.Last;
- Add_File_List (Get_Machine_Path_Prefix & Directory_Separator
- & "grt" & List_Suffix, False);
+ Add_Lib_File_List ("grt");
+ Add_Lib_File_List ("grt-exec");
-- call the linker
declare
diff --git a/src/grt/Makefile.inc b/src/grt/Makefile.inc
index 340eb9eb2..3c37dc829 100644
--- a/src/grt/Makefile.inc
+++ b/src/grt/Makefile.inc
@@ -120,7 +120,7 @@ GRT_PRAGMA_FLAG=-gnatec$(GRTSRCDIR)/grt.adc -gnatdY
# Rule to compile an Ada file.
GRT_ADACOMPILE=$(GNATMAKE) -u -c $(GRT_FLAGS) $(GRT_PRAGMA_FLAG)
-grt-all: $(libdirsuffix)/libgrt.a $(libdirsuffix)/$(GRT_LIBBACKTRACE) $(libdirsuffix)/grt.lst $(libdirsuffix)/grt.ver
+grt-all: $(libdirsuffix)/libgrt.a $(libdirsuffix)/$(GRT_LIBBACKTRACE) $(libdirsuffix)/grt.lst $(libdirsuffix)/grt-exec.lst $(libdirsuffix)/grt.ver
$(libdirsuffix)/libgrt.a: $(GRT_ADD_OBJS) grt/run-bind.o grt/main.o grt/grt-files
$(RM) -f $@
@@ -247,12 +247,16 @@ grt/grt-files.in: grt/grt-files
$(libdirsuffix)/grt.lst: grt/grt-files.in
echo "@/libgrt.a" > $@
- for i in $(GRT_EXTRA_LIB) $(GRT_EXEC_OPTS); do echo $$i >> $@; done
+ for i in $(GRT_EXTRA_LIB); do echo $$i >> $@; done
ifneq ($(LIBBACKTRACE),)
echo "@/libbacktrace.a" >> $@
endif
cat $< >> $@
+$(libdirsuffix)/grt-exec.lst:
+ echo "# link options for executables" > $@
+ for i in $(GRT_EXEC_OPTS); do echo $$i >> $@; done
+
$(libdirsuffix)/grt.ver: $(GRTSRCDIR)/grt.ver
cp $< $@