Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

38: Unable to compile with LTO #196

Closed
dvzrv opened this issue Jan 15, 2022 · 2 comments
Closed

38: Unable to compile with LTO #196

dvzrv opened this issue Jan 15, 2022 · 2 comments

Comments

@dvzrv
Copy link

dvzrv commented Jan 15, 2022

Hi! I maintain efivar for Arch Linux.

When building version 38, I attempted to compile the project with link-time-optimizations (LTO) enabled, as it is now our distribution-wide default.

Unfortunately that leads to a segmentation fault with the linker (ld from binutils 2.36.1, gcc 11.1.0 at the time of writing):

collect2: fatal error: ld terminated with signal 11 [Segmentation fault], core dumped

coredumpctl output:

           PID: 884376 (ld)
           UID: 1000 (dave)
           GID: 1000 (dave)
        Signal: 11 (SEGV)
     Timestamp: Sat 2022-01-15 14:01:02 CET (4min 56s ago)
  Command Line: /usr/bin/ld -plugin /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/lto-wrapper -plugin-opt=-fresolution=/tmp/cclHHMYs.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --build-id --eh-frame-hdr --hash-style=gnu -m elf_x86_64 -shared --fatal-warnings --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id -z relro --fatal-warnings --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id -z relro --fatal-warnings --no-undefined-version --no-allow-shlib-undefined --add-needed -z now --build-id -z relro -o libefivar.so /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/crti.o /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/crtbeginS.o -L. -L. -L/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0 -L/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib -L/lib/../lib -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../.. -O1 --sort-common --as-needed -z relro -z now --add-needed --build-id --no-allow-shlib-undefined --no-undefined-version -z now -z muldefs -z relro --fatal-warnings --add-needed --build-id --no-allow-shlib-undefined --no-undefined-version -z now -z muldefs -z relro --fatal-warnings -soname libefivar.so.1 --version-script=libefivar.map crc32.o dp.o dp-acpi.o dp-hw.o dp-media.o dp-message.o efivarfs.o error.o export.o guid.o guid-symbols.o lib.o vars.o time.o -ldl -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/crtendS.o /usr/lib/gcc/x86_64-pc-linux-gnu/11.1.0/../../../../lib/crtn.o -T guids.lds
    Executable: /usr/bin/ld
 Control Group: /user.slice/user-1000.slice/user@1000.service/app.slice/tmux.service/payload
          Unit: user@1000.service
     User Unit: tmux.service
         Slice: user-1000.slice
     Owner UID: 1000 (dave)
       Boot ID: 42c9389b1279454facab3cb782288de7
    Machine ID: a5640b7a4f7946aa8d2d075962e96526
      Hostname: dave
       Storage: none
       Message: Process 884376 (ld) of user 1000 dumped core.

full build log: efivar-38-build.log

Any insight on this would be greatly appreciated!

@dvzrv
Copy link
Author

dvzrv commented Jan 15, 2022

After some digging in regards to disabling -Werror, I found https://sourceware.org/bugzilla/show_bug.cgi?id=28264 which seems to trigger this.

@frozencemetery
Copy link
Member

Right, it's a binutils bug. That's why bded9c7 happened.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants