gcc4.9fedora-27

gcc49 on Fedora 27: /usr/bin/ld: cannot find -lgcc_s


I am using the davidva/gcc49 copr, on Fedora 27.

When I try to compile after running source /usr/bin/gcc49 as the copr webpage describes, I get this error:

/usr/bin/ld: cannot find -lgcc_s

After learning about how the flag -l works for gcc, I learned it is looking for library gcc_s. I found it in /opt/gcc-4.9.3/lib64/gcc/x86_64-fedoraunited-linux-gnu/lib64, which sounds like the right spot for it to be. Why is it not linking? Do I need to add a directory to a library path? If it's LDFLAGS, it's already there because of the file I sourced:

export LDFLAGS="-L/opt/gcc-$gver/$lib/gcc/$gcc_target_platform/$lib/" 

What do I need to do to get gcc 4.9 on Fedora 27 to find its library file which is clearly in the LDFLAGS directory?


Solution

  • The problem is that the libgcc_s.so file is in the wrong directory! Just symlink to it in the 4.9.3 directory:

    pushd /opt/gcc-4.9.3/lib64/gcc/x86_64-fedoraunited-linux-gnu/4.9.3
    sudo cp -p ../lib64/libgcc_s.so.1 .
    sudo ln -s libgcc_s.so.1 libgcc_s.so
    popd
    

    I guess the /opt/gcc-4.9.3/lib64/gcc/x86_64-fedoraunited-linux-gnu/lib64 directory was supposed to be included in any LDFLAGS parameter, and that might be a weakness of the build process I was using and not the gcc 4.9 package.

    Putting this file and appropriately-named symlink in the 4.9.3 directory allows my build process to complete successfully.

    Reference: https://bgstack15.wordpress.com/2018/02/01/gcc-4-9-for-fedora-27/