Comments (2)
Jared suspects that this is caused by https://wiki.ubuntu.com/NattyNarwhal/ToolchainTransition.
I've found that the following patch fixes the problem for me:
From 488eb3f649aa33bbe5c641314398972efa2f649d Mon Sep 17 00:00:00 2001
From: Mario Limonciello <[email protected]>
Date: Tue, 2 Jun 2015 10:11:18 -0500
Subject: [PATCH] Make libdl an explicit dependency for libefivar.so.0
pesign is still failing to build, this fixes it.
Signed-off-by: Mario Limonciello <[email protected]>
---
src/Makefile | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Makefile b/src/Makefile
index f8ac6bd..a238189 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -34,7 +34,7 @@ EFIBOOT_DEPS = \
libefivar.a :: $(EFIVAR_OBJECTS)
-libefivar.so.$(SONAME_VERSION) :: $(EFIVAR_OBJECTS)
+libefivar.so.$(SONAME_VERSION) :: $(EFIVAR_OBJECTS) $(foreach lib,$(EFIVAR_LIBS),-l$(lib))
libefiboot.a :: $(EFIBOOT_OBJECTS)
--
1.9.1
This causes ldd to have an explicit dependency and allows pesign to build properly.
$ ldd src/libefivar.so
linux-vdso.so.1 => (0x00007ffda4fcb000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f850bcdc000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f850b917000)
/lib64/ld-linux-x86-64.so.2 (0x00007f850c127000)
from efivar.
That patch seems somewhat incorrect. It seems to cause /usr/lib/libdl.so to be passed to the linker, which will cause the build to fail on a multilib (32/64-bit) system, where /usr/lib and /usr/lib64 contain different ABIs.
x86_64-pc-linux-gnu-gcc -O2 -pipe -march=native -frecord-gcc-switches -Wall -Wsign-compare -std=gnu11 -fshort-wchar -fPIC -fvisibility=hidden -D_GNU_SOURCE -I/tmp/portage/sys-libs/efivar-0.20/work/efivar-0.20/src/include/efivar/ -Wl,-soname,libefivar.so.0 -O2 -pipe -march=native -frecord-gcc-switches -Wall -Wsign-compare -std=gnu11 -fshort-wchar -fPIC -fvisibility=hidden -D_GNU_SOURCE -I/tmp/portage/sys-libs/efivar-0.20/work/efivar-0.20/src/include/efivar/ -Wl,-O1 -Wl,--as-needed -shared dp.o dp-acpi.o dp-hw.o dp-media.o dp-message.o efivarfs.o export.o guid.o guidlist.o guid-symbols.o lib.o vars.o /usr/lib/libdl.so -o libefivar.so.0
/usr/lib/libdl.so: error adding symbols: File in wrong format
collect2: error: ld returned 1 exit status
from efivar.
Related Issues (20)
- efivar 38: i686: off_t vs. ssize_t HOT 2
- Build failure for efivar v38 on ppc64le HOT 2
- Clarify SPDX License Identifier
- efivar-38: ld.lld: error: unable to insert .data after .data HOT 1
- makeguids Your linker is not supported guids.txt guid-symbols.c include/efivar/efivar-guids.h guids.lds HOT 1
- ld.lld: error: undefined symbol: efi_error_set
- Cant compile with musl HOT 2
- OsIndications variable disappeared after writing to it
- Build fails on musl HOT 2
- <linux/fs.h> conflicts with <sys/mount.h>
- 38: trying use groff use instead mandoc HOT 3
- -march=native results in non-reproducible binaries HOT 1
- cross compile linking issues. HOT 1
- Invalid libefivar.so generated when building with clang-15. HOT 1
- Cross compile build fails with uClibc
- Updating libefivar & efibootmgr for Android-x86 or BlissOS
- How to build efivar? HOT 1
- Rename docs/efisecdb.1.mdoc to docs/efisecdb.1
- empty value of printing variable from --import
- 38 + 90e88b22: test suite is failing
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from efivar.