https://bugs.gentoo.org/831472

From b23aba1469de8bb7a115751f9cd294ad3aaa6680 Mon Sep 17 00:00:00 2001
From: Ali Abdel-Qader <abdelqaderali@protonmail.com>
Date: Tue, 31 May 2022 11:53:32 -0400
Subject: [PATCH] Remove deprecated --add-needed linker flag

Resolves #204
Signed-off-by: Ali Abdel-Qader <abdelqaderali@protonmail.com>
---
 src/include/defaults.mk | 2 --
 src/include/gcc.specs   | 2 +-
 2 files changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/include/defaults.mk b/src/include/defaults.mk
index b8cc590c..42bd3d6e 100644
--- a/src/include/defaults.mk
+++ b/src/include/defaults.mk
@@ -51,7 +51,6 @@ LDFLAGS ?=
 override _CCLDFLAGS := $(CCLDFLAGS)
 override _LDFLAGS := $(LDFLAGS)
 override LDFLAGS = $(CFLAGS) -L. $(_LDFLAGS) $(_CCLDFLAGS) \
-		   -Wl,--add-needed \
 		   -Wl,--build-id \
 		   -Wl,--no-allow-shlib-undefined \
 		   -Wl,--no-undefined-version \
@@ -98,7 +97,6 @@ override _HOST_LDFLAGS := $(HOST_LDFLAGS)
 override _HOST_CCLDFLAGS := $(HOST_CCLDFLAGS)
 override HOST_LDFLAGS = $(HOST_CFLAGS) -L. \
 			$(_HOST_LDFLAGS) $(_HOST_CCLDFLAGS) \
-			-Wl,--add-needed \
 			-Wl,--build-id \
 			-Wl,--no-allow-shlib-undefined \
 			-Wl,-z,now \
diff --git a/src/include/gcc.specs b/src/include/gcc.specs
index ef28e2bb..d85e8658 100644
--- a/src/include/gcc.specs
+++ b/src/include/gcc.specs
@@ -5,4 +5,4 @@
 + %{!shared:%{!static:%{!r:-pie}}} %{static:-Wl,-no-fatal-warnings -Wl,-static -static -Wl,-z,relro,-z,now} -grecord-gcc-switches
 
 *link:
-+ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie}
++ %{!static:--fatal-warnings} --no-undefined-version --no-allow-shlib-undefined -z now --build-id %{!static:%{!shared:-pie}} %{shared:-z relro} %{static:%<pie}
From 1f247260c9b4bd6fcda30f3e4cc358852aeb9e4d Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Tomasz=20Pawe=C5=82=20Gajc?= <tpgxyz@gmail.com>
Date: Wed, 29 Jun 2022 21:44:29 +0200
Subject: [PATCH] LLD: fix detection and remove not needed workarounds
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Tomasz Paweł Gajc <tpgxyz@gmail.com>
---
 src/include/workarounds.mk | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/include/workarounds.mk b/src/include/workarounds.mk
index b72fbaf6..57394edd 100644
--- a/src/include/workarounds.mk
+++ b/src/include/workarounds.mk
@@ -2,12 +2,12 @@
 #
 # workarounds.mk - workarounds for weird stuff behavior
 
-LD_FLAVOR := $(shell LC_ALL=C $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/ .*//g')
-LD_VERSION := $(shell LC_ALL=C $(LD) --version | grep -E '^(LLD|GNU ld)'|sed 's/.* //')
+LD_FLAVOR := $(shell LC_ALL=C $(LD) --version | grep -E '^((.* )?LLD|GNU ld)'|sed 's/.* LLD/LLD/;s/ .*//g')
+LD_VERSION := $(shell LC_ALL=C $(LD) --version | grep -E '^((.* )?LLD|GNU ld)'|sed 's/.* LLD/LLD/;s/.* //')
 # 2.35 is definitely broken and 2.36 seems to work
 LD_DASH_T := $(shell \
 	if [ "x${LD_FLAVOR}" = xLLD ] ; then \
-		echo '-T' ; \
+		echo "" ; \
 	elif [ "x${LD_FLAVOR}" = xGNU ] ; then \
 		if echo "${LD_VERSION}" | grep -q -E '^2\.3[6789]|^2\.[456789]|^[3456789]|^[[:digit:]][[:digit:]]' ; then \
 			echo '-T' ; \
@@ -15,7 +15,7 @@ LD_DASH_T := $(shell \
 			echo "" ; \
 		fi ; \
 	else \
-		echo "Your linker is not supported" ; \
+		echo "Your linker ${LD_FLAVOR} version ${LD_VERSION} is not supported" ; \
 		exit 1 ; \
 	fi)
 
From cfd686de51494d3e34be896a91835657ccab37d4 Mon Sep 17 00:00:00 2001
From: Nicholas Vinson <nvinson234@gmail.com>
Date: Mon, 10 Oct 2022 14:22:36 -0400
Subject: [PATCH] Revamp efi_well_known_* variable handling

The current implementation attempts to use the linker to create aliases
for efi_well_known_guids and efi_well_known_names. It also tries to use
the linker to generate the variables efi_well_known_guids_end and
efi_well_known_names_end.

When building with clang, the generated linker result results in a
broken libefivar.so that causes programs to segfault when linked against
it.  This change does away with linker script hacker and instead
introduces pointers to store the locations of efi_well_known_guids_end
and efi_well_known_names_end.

Additionally, efi_well_known_guids and efi_well_known_names are now
created as pointers that point to the beginning of their respective
arrays.

Signed-off-by: Nicholas Vinson <nvinson234@gmail.com>
Fixes: #234
---
 src/Makefile               |  7 ++--
 src/include/rules.mk       |  5 +--
 src/include/workarounds.mk | 24 -------------
 src/makeguids.c            | 72 +++++++++++++-------------------------
 4 files changed, 27 insertions(+), 81 deletions(-)
 delete mode 100644 src/include/workarounds.mk

diff --git a/src/Makefile b/src/Makefile
index e04357a7..ec1eabe6 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -4,7 +4,6 @@ include $(TOPDIR)/src/include/deprecated.mk
 include $(TOPDIR)/src/include/version.mk
 include $(TOPDIR)/src/include/rules.mk
 include $(TOPDIR)/src/include/defaults.mk
-include $(TOPDIR)/src/include/workarounds.mk
 
 LIBTARGETS=libefivar.so libefiboot.so libefisec.so
 STATICLIBTARGETS=libefivar.a libefiboot.a libefisec.a
@@ -30,7 +29,7 @@ EFISECDB_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(EFISECDB_SOURCES)))
 GENERATED_SOURCES = include/efivar/efivar-guids.h guid-symbols.c
 MAKEGUIDS_SOURCES = makeguids.c util-makeguids.c
 MAKEGUIDS_OBJECTS = $(patsubst %.S,%.o,$(patsubst %.c,%.o,$(MAKEGUIDS_SOURCES)))
-MAKEGUIDS_OUTPUT = $(GENERATED_SOURCES) guids.lds
+MAKEGUIDS_OUTPUT = $(GENERATED_SOURCES)
 
 util-makeguids.c : util.c
 	cp util.c util-makeguids.c
@@ -84,7 +83,7 @@ $(MAKEGUIDS_OUTPUT) : guids.txt
 	if [ "$${missing}" != "no" ]; then \
 		exit 1 ; \
 	fi
-	./makeguids $(LD_DASH_T) guids.txt guid-symbols.c include/efivar/efivar-guids.h guids.lds
+	./makeguids guids.txt guid-symbols.c include/efivar/efivar-guids.h
 
 prep : makeguids $(GENERATED_SOURCES)
 
@@ -96,7 +95,6 @@ libefivar.a : $(patsubst %.o,%.static.o,$(LIBEFIVAR_OBJECTS))
 libefivar.so : $(LIBEFIVAR_OBJECTS)
 libefivar.so : | $(GENERATED_SOURCES) libefivar.map
 libefivar.so : LIBS=dl
-libefivar.so : LDSCRIPTS=guids.lds
 libefivar.so : MAP=libefivar.map
 
 efivar : $(EFIVAR_OBJECTS) | libefivar.so
@@ -137,7 +135,6 @@ deps : $(ALL_SOURCES)
 clean : 
 	@rm -rfv *~ *.o *.a *.E *.so *.so.* *.pc *.bin .*.d *.map \
 		makeguids guid-symbols.c include/efivar/efivar-guids.h \
-		guids.lds \
 		$(TARGETS) $(STATICTARGETS)
 	@# remove the deps files we used to create, as well.
 	@rm -rfv .*.P .*.h.P *.S.P include/efivar/.*.h.P
diff --git a/src/include/rules.mk b/src/include/rules.mk
index f309f863..8d0b68a2 100644
--- a/src/include/rules.mk
+++ b/src/include/rules.mk
@@ -3,7 +3,6 @@ default : all
 .PHONY: default all clean install test
 
 include $(TOPDIR)/src/include/version.mk
-include $(TOPDIR)/src/include/workarounds.mk
 
 comma:= ,
 empty:=
@@ -36,9 +35,7 @@ family = $(foreach FAMILY_SUFFIX,$(FAMILY_SUFFIXES),$($(1)_$(FAMILY_SUFFIX)))
 	$(CCLD) $(CCLDFLAGS) $(CPPFLAGS) -o $@ $(sort $^) $(LDLIBS)
 
 %.so :
-	$(CCLD) $(CCLDFLAGS) $(CPPFLAGS) $(SOFLAGS) \
-		$(foreach LDS,$(LDSCRIPTS),$(LD_DASH_T) $(LDS)) \
-		-o $@ $^ $(LDLIBS)
+	$(CCLD) $(CCLDFLAGS) $(CPPFLAGS) $(SOFLAGS) -o $@ $^ $(LDLIBS)
 	ln -vfs $@ $@.1
 
 %.abixml : %.so
diff --git a/src/include/workarounds.mk b/src/include/workarounds.mk
deleted file mode 100644
index 57394edd..00000000
--- a/src/include/workarounds.mk
+++ /dev/null
@@ -1,24 +0,0 @@
-# SPDX-License-Identifier: SPDX-License-Identifier: LGPL-2.1-or-later
-#
-# workarounds.mk - workarounds for weird stuff behavior
-
-LD_FLAVOR := $(shell LC_ALL=C $(LD) --version | grep -E '^((.* )?LLD|GNU ld)'|sed 's/.* LLD/LLD/;s/ .*//g')
-LD_VERSION := $(shell LC_ALL=C $(LD) --version | grep -E '^((.* )?LLD|GNU ld)'|sed 's/.* LLD/LLD/;s/.* //')
-# 2.35 is definitely broken and 2.36 seems to work
-LD_DASH_T := $(shell \
-	if [ "x${LD_FLAVOR}" = xLLD ] ; then \
-		echo "" ; \
-	elif [ "x${LD_FLAVOR}" = xGNU ] ; then \
-		if echo "${LD_VERSION}" | grep -q -E '^2\.3[6789]|^2\.[456789]|^[3456789]|^[[:digit:]][[:digit:]]' ; then \
-			echo '-T' ; \
-		else \
-			echo "" ; \
-		fi ; \
-	else \
-		echo "Your linker ${LD_FLAVOR} version ${LD_VERSION} is not supported" ; \
-		exit 1 ; \
-	fi)
-
-export LD_DASH_T
-
-# vim:ft=make
diff --git a/src/makeguids.c b/src/makeguids.c
index 376bffba..bfdee12e 100644
--- a/src/makeguids.c
+++ b/src/makeguids.c
@@ -107,51 +107,46 @@ write_guidnames(FILE *out, const char *listname,
 			gn->symbol, gn->name, gn->description);
 	}
 	fprintf(out, "};\n");
+        fprintf(out, "const struct efivar_guidname\n"
+			"\t__attribute__((__visibility__ (\"default\")))\n"
+			"\t* const %s = %s_;\n", listname, listname);
+        fprintf(out, "const struct efivar_guidname\n"
+			"\t__attribute__((__visibility__ (\"default\")))\n"
+                        "\t* const %s_end = %s_\n\t+ %zd;\n",
+                        listname, listname, n - 1);
 }
 
 int
 main(int argc, char *argv[])
 {
 	int rc;
-	int argstart = 0;
-	FILE *symout, *header, *ldsout;
-	int dash_t = 0;
+	FILE *symout, *header;
 
-	if (argc < 5) {
+	if (argc < 4) {
 		errx(1, "Not enough arguments.\n");
-	} else if (argc > 5 && !strcmp(argv[1],"-T")) {
-		argstart = 1;
-		dash_t = 1;
-	} else if (argc > 5) {
+	} else if (argc > 4) {
 		errx(1, "Too many arguments.\n");
 	}
 
-	symout = fopen(argv[argstart + 2], "w");
+	symout = fopen(argv[2], "w");
 	if (symout == NULL)
-		err(1, "could not open \"%s\"", argv[argstart + 2]);
-	rc = chmod(argv[argstart + 2], 0644);
+		err(1, "could not open \"%s\"", argv[2]);
+	rc = chmod(argv[2], 0644);
 	if (rc < 0)
-		warn("chmod(%s, 0644)", argv[argstart + 2]);
+		warn("chmod(%s, 0644)", argv[2]);
 
-	header = fopen(argv[argstart + 3], "w");
+	header = fopen(argv[3], "w");
 	if (header == NULL)
-		err(1, "could not open \"%s\"", argv[argstart + 3]);
-	rc = chmod(argv[argstart + 3], 0644);
-	if (rc < 0)
-		warn("chmod(%s, 0644)", argv[argstart + 3]);
-
-	ldsout = fopen(argv[argstart + 4], "w");
-	if (ldsout == NULL)
-		err(1, "could not open \"%s\"", argv[argstart + 4]);
-	rc = chmod(argv[argstart + 4], 0644);
+		err(1, "could not open \"%s\"", argv[3]);
+	rc = chmod(argv[3], 0644);
 	if (rc < 0)
-		warn("chmod(%s, 0644)", argv[argstart + 4]);
+		warn("chmod(%s, 0644)", argv[3]);
 
 	struct guidname_index *guidnames = NULL;
 
-	rc = read_guids_at(AT_FDCWD, argv[argstart + 1], &guidnames);
+	rc = read_guids_at(AT_FDCWD, argv[1], &guidnames);
 	if (rc < 0)
-		err(1, "could not read \"%s\"", argv[argstart + 1]);
+		err(1, "could not read \"%s\"", argv[1]);
 
 	struct efivar_guidname *outbuf;
 
@@ -243,12 +238,11 @@ struct efivar_guidname {\n\
 	fprintf(header,
 		"extern const struct efivar_guidname\n"
 			"\t__attribute__((__visibility__ (\"default\")))\n"
-			"\tefi_well_known_guids[%d];\n",
-		i);
+			"\t* const efi_well_known_guids;\n");
 	fprintf(header,
 		"extern const struct efivar_guidname\n"
 			"\t__attribute__((__visibility__ (\"default\")))\n"
-			"\tefi_well_known_guids_end;\n");
+			"\t* const efi_well_known_guids_end;\n");
 	fprintf(header,
 		"extern const uint64_t\n"
 			"\t__attribute__((__visibility__ (\"default\")))\n"
@@ -256,12 +250,11 @@ struct efivar_guidname {\n\
 	fprintf(header,
 		"extern const struct efivar_guidname\n"
 			"\t__attribute__((__visibility__ (\"default\")))\n"
-			"\tefi_well_known_names[%d];\n",
-		i);
+			"\t* const efi_well_known_names;\n");
 	fprintf(header,
 		"extern const struct efivar_guidname\n"
 			"\t__attribute__((__visibility__ (\"default\")))\n"
-			"\tefi_well_known_names_end;\n");
+			"\t* const efi_well_known_names_end;\n");
 	fprintf(header,
 		"extern const uint64_t\n"
 			"\t__attribute__((__visibility__ (\"default\")))\n"
@@ -310,23 +303,6 @@ struct efivar_guidname {\n\
 
 	fclose(symout);
 
-	fprintf(ldsout,
-		"SECTIONS\n"
-		"{\n"
-		"  .data :\n"
-		"  {\n"
-		"    efi_well_known_guids = efi_well_known_guids_;\n"
-		"    efi_well_known_guids_end = efi_well_known_guids_ + %zd;\n"
-		"    efi_well_known_names = efi_well_known_names_;\n"
-		"    efi_well_known_names_end = efi_well_known_names_ + %zd;\n"
-		"  }\n"
-		"}%s;\n",
-		(line - 1) * sizeof(struct efivar_guidname),
-		(line - 1) * sizeof(struct efivar_guidname),
-		dash_t ? " INSERT AFTER .data" : "");
-
-	fclose(ldsout);
-
 	free(guidnames->strtab);
 	free(guidnames);
 
