| Message ID | 20260330230727.1380122-1-thomas.perrot@bootlin.com |
|---|---|
| State | Under Review |
| Headers | show |
| Series | lto: disable LTO for e2fsprogs | expand |
Thomas Perrot via lists.openembedded.org schrieb am Di 31. Mär, 01:07 (+0200): > From: Thomas Perrot <thomas.perrot@bootlin.com> > > Fat LTO objects embed original source paths in .gnu.lto_* IR sections > which are not remapped by -ffile-prefix-map. This causes buildpaths QA > failures for libss.a and libext2fs.a in the e2fsprogs-staticdev package. > > Disable LTO for e2fsprogs to prevent TMPDIR references from leaking into > the installed static libraries. For e2fsprogs this was a patch I've used to fix the LTO problem. Feel free to take it: diff --git c/recipes/e2fsprogs/e2fsprogs/lto.patch i/recipes/e2fsprogs/e2fsprogs/lto.patch new file mode 100644 index 0000000..cf5c076 --- /dev/null +++ i/recipes/e2fsprogs/e2fsprogs/lto.patch @@ -0,0 +1,38 @@ +Upstream-Status: Inappropriate [ TODO ] + +diff --git i/lib/ext2fs/Makefile.in w/lib/ext2fs/Makefile.in +index e9a6ced2..998ccd19 100644 +--- i/lib/ext2fs/Makefile.in ++++ w/lib/ext2fs/Makefile.in +@@ -262,11 +262,11 @@ all:: ext2fs.pc + + .c.o: + $(E) " CC $<" +- $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $< -o $@ ++ $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c ./$< -o $@ + $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $< + $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $< + @PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $< +-@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -fPIC -shared -o elfshared/$*.o -c $< ++@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -fPIC -shared -o elfshared/$*.o -c ./$< + @BSDLIB_CMT@ $(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $< + + DISTFILES= Makefile *.c *.h image +diff --git i/lib/ss/Makefile.in w/lib/ss/Makefile.in +index bb504189..9d8ec595 100644 +--- i/lib/ss/Makefile.in ++++ w/lib/ss/Makefile.in +@@ -34,11 +34,11 @@ COMPILE_ET= _ET_DIR_OVERRIDE=$(srcdir)/../et ../et/compile_et + + .c.o: + $(E) " CC $<" +- $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c $< ++ $(Q) $(CC) $(ALL_CFLAGS_STLIB) -c ./$< + $(Q) $(CHECK_CMD) $(ALL_CFLAGS) $< + $(Q) $(CPPCHECK_CMD) $(CPPFLAGS) $< + @PROFILE_CMT@ $(Q) $(CC) $(ALL_CFLAGS_STLIB) -g -pg -o profiled/$*.o -c $< +-@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -DSHARED_ELF_LIB -fPIC -shared -o elfshared/$*.o -c $< ++@ELF_CMT@ $(Q) $(CC) $(ALL_CFLAGS_SHLIB) -DSHARED_ELF_LIB -fPIC -shared -o elfshared/$*.o -c ./$< + @BSDLIB_CMT@ $(Q) $(CC) $(ALL_CFLAGS_SHLIB) $(BSDLIB_PIC_FLAG) -o pic/$*.o -c $< + + # for the library diff --git c/recipes/e2fsprogs/e2fsprogs_%.bbappend i/recipes/e2fsprogs/e2fsprogs_%.bbappend new file mode 100644 index 0000000..ee75686 --- /dev/null +++ i/recipes/e2fsprogs/e2fsprogs_%.bbappend @@ -0,0 +1,5 @@ +FILESEXTRAPATHS:prepend := "${THISDIR}/${BPN}:" + +SRC_URI += "\ + file://lto.patch \ +"
diff --git a/meta/conf/distro/include/lto.inc b/meta/conf/distro/include/lto.inc index 2802d38ad3df..7471360236f9 100644 --- a/meta/conf/distro/include/lto.inc +++ b/meta/conf/distro/include/lto.inc @@ -4,6 +4,8 @@ # # Disable LTO for following packages + +LTO:pn-e2fsprogs = "" LTO:pn-expect = "" LTO:pn-glibc = "" LTO:pn-gcc-runtime = ""