Public bug reported: I'm trying to compile a 32-bit application on Trusty x86-64. I've installed the libsdl1.2-dev and libsdl1.2debian:i386 packages successfully. When I try to compile any 32-bit application that links to -lSDL, it fails to link.
#include <SDL/SDL.h> int main(int argc, char* argv[]) { if (SDL_Init(SDL_INIT_VIDEO) != 0) { exit(1); } SDL_Quit(); return 0; } The above trivial C application below builds just fine as 64-bit with the following command: gcc main.c -lSDL But when I try to build it with the -m32 flag, using the command: gcc -m32 main.c -Wl,--verbose -lSDL I get the following output: GNU ld (GNU Binutils for Ubuntu) 2.24 Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om i386pep i386pe using internal linker script: ================================================== /* Script for -z combreloc: combine and sort reloc sections */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-linux-gnu/lib32"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); <snipped/> ================================================== attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crt1.o succeeded /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crt1.o attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crti.o succeeded /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crti.o attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/crtbegin.o succeeded /usr/lib/gcc/x86_64-linux-gnu/4.8/32/crtbegin.o attempt to open /tmp/ccZi14Qh.o succeeded /tmp/ccZi14Qh.o attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-liGNU ld (GNU Binutils for Ubuntu) 2.24 Supported emulations: elf_x86_64 elf32_x86_64 elf_i386 i386linux elf_l1om elf_k1om i386pep i386pe using internal linker script: ================================================== /* Script for -z combreloc: combine and sort reloc sections */ OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386") OUTPUT_ARCH(i386) ENTRY(_start) SEARCH_DIR("/usr/i386-linux-gnu/lib32"); SEARCH_DIR("/usr/x86_64-linux-gnu/lib32"); SEARCH_DIR("=/usr/local/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/local/lib32"); SEARCH_DIR("=/lib/i386-linux-gnu"); SEARCH_DIR("=/lib32"); SEARCH_DIR("=/usr/lib/i386-linux-gnu"); SEARCH_DIR("=/usr/lib32"); SEARCH_DIR("=/usr/local/lib"); SEARCH_DIR("=/lib"); SEARCH_DIR("=/usr/lib"); <snipped/> ================================================== attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crt1.o succeeded /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crt1.o attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crti.o succeeded /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/crti.o attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/crtbegin.o succeeded /usr/lib/gcc/x86_64-linux-gnu/4.8/32/crtbegin.o attempt to open /tmp/ccZi14Qh.o succeeded /tmp/ccZi14Qh.o attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libSDL.a failed attempt to open /lib/i386-linux-gnu/libSDL.so failed attempt to open /lib/i386-linux-gnu/libSDL.a failed attempt to open /lib/../lib32/libSDL.so failed attempt to open /lib/../lib32/libSDL.a failed attempt to open /usr/lib/i386-linux-gnu/libSDL.so failed attempt to open /usr/lib/i386-linux-gnu/libSDL.a failed attempt to open /usr/lib/../lib32/libSDL.so failed attempt to open /usr/lib/../lib32/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../libSDL.a failed attempt to open /lib/i386-linux-gnu/libSDL.so failed attempt to open /lib/i386-linux-gnu/libSDL.a failed attempt to open /usr/lib/i386-linux-gnu/libSDL.so failed attempt to open /usr/lib/i386-linux-gnu/libSDL.a failed attempt to open /usr/i386-linux-gnu/lib32/libSDL.so failed attempt to open /usr/i386-linux-gnu/lib32/libSDL.a failed attempt to open /usr/x86_64-linux-gnu/lib32/libSDL.so failed attempt to open /usr/x86_64-linux-gnu/lib32/libSDL.a failed attempt to open //usr/local/lib/i386-linux-gnu/libSDL.so failed attempt to open //usr/local/lib/i386-linux-gnu/libSDL.a failed attempt to open //usr/local/lib32/libSDL.so failed attempt to open //usr/local/lib32/libSDL.a failed attempt to open //lib/i386-linux-gnu/libSDL.so failed attempt to open //lib/i386-linux-gnu/libSDL.a failed attempt to open //lib32/libSDL.so failed attempt to open //lib32/libSDL.a failed attempt to open //usr/lib/i386-linux-gnu/libSDL.so failed attempt to open //usr/lib/i386-linux-gnu/libSDL.a failed attempt to open //usr/lib32/libSDL.so failed attempt to open //usr/lib32/libSDL.a failed attempt to open //usr/local/lib/libSDL.so failed attempt to open //usr/local/lib/libSDL.a failed attempt to open //lib/libSDL.so failed attempt to open //lib/libSDL.a failed attempt to open //usr/lib/libSDL.so failed attempt to open //usr/lib/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libgcc.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libgcc.a succeeded attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libgcc_s.so succeeded -lgcc_s (/usr/lib/gcc/x86_64-linux-gnu/4.8/32/libgcc_s.so) attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libc.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libc.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libc.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libc.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libc.so succeeded opened script file /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libc.so opened script file /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libc.so attempt to open /lib32/libc.so.6 succeeded /lib32/libc.so.6 attempt to open /usr/lib32/libc_nonshared.a succeeded (/usr/lib32/libc_nonshared.a)elf-init.oS attempt to open /lib32/ld-linux.so.2 succeeded /lib32/ld-linux.so.2 /usr/bin/ld: cannot find -lSDL collect2: error: ld returned 1 exit status nux-gnu/4.8/../../../i386-linux-gnu/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libSDL.a failed attempt to open /lib/i386-linux-gnu/libSDL.so failed attempt to open /lib/i386-linux-gnu/libSDL.a failed attempt to open /lib/../lib32/libSDL.so failed attempt to open /lib/../lib32/libSDL.a failed attempt to open /usr/lib/i386-linux-gnu/libSDL.so failed attempt to open /usr/lib/i386-linux-gnu/libSDL.a failed attempt to open /usr/lib/../lib32/libSDL.so failed attempt to open /usr/lib/../lib32/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../libSDL.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../libSDL.a failed attempt to open /lib/i386-linux-gnu/libSDL.so failed attempt to open /lib/i386-linux-gnu/libSDL.a failed attempt to open /usr/lib/i386-linux-gnu/libSDL.so failed attempt to open /usr/lib/i386-linux-gnu/libSDL.a failed attempt to open /usr/i386-linux-gnu/lib32/libSDL.so failed attempt to open /usr/i386-linux-gnu/lib32/libSDL.a failed attempt to open /usr/x86_64-linux-gnu/lib32/libSDL.so failed attempt to open /usr/x86_64-linux-gnu/lib32/libSDL.a failed attempt to open //usr/local/lib/i386-linux-gnu/libSDL.so failed attempt to open //usr/local/lib/i386-linux-gnu/libSDL.a failed attempt to open //usr/local/lib32/libSDL.so failed attempt to open //usr/local/lib32/libSDL.a failed attempt to open //lib/i386-linux-gnu/libSDL.so failed attempt to open //lib/i386-linux-gnu/libSDL.a failed attempt to open //lib32/libSDL.so failed attempt to open //lib32/libSDL.a failed attempt to open //usr/lib/i386-linux-gnu/libSDL.so failed attempt to open //usr/lib/i386-linux-gnu/libSDL.a failed attempt to open //usr/lib32/libSDL.so failed attempt to open //usr/lib32/libSDL.a failed attempt to open //usr/local/lib/libSDL.so failed attempt to open //usr/local/lib/libSDL.a failed attempt to open //lib/libSDL.so failed attempt to open //lib/libSDL.a failed attempt to open //usr/lib/libSDL.so failed attempt to open //usr/lib/libSDL.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libgcc.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libgcc.a succeeded attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libgcc_s.so succeeded -lgcc_s (/usr/lib/gcc/x86_64-linux-gnu/4.8/32/libgcc_s.so) attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libc.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/32/libc.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libc.so failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../i386-linux-gnu/libc.a failed attempt to open /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libc.so succeeded opened script file /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libc.so opened script file /usr/lib/gcc/x86_64-linux-gnu/4.8/../../../../lib32/libc.so attempt to open /lib32/libc.so.6 succeeded /lib32/libc.so.6 attempt to open /usr/lib32/libc_nonshared.a succeeded (/usr/lib32/libc_nonshared.a)elf-init.oS attempt to open /lib32/ld-linux.so.2 succeeded /lib32/ld-linux.so.2 /usr/bin/ld: cannot find -lSDL collect2: error: ld returned 1 exit status ** Affects: libsdl1.2 (Ubuntu) Importance: Undecided Status: New -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/1481440 Title: multi-arch ld cannot find -lSDL or -LSDL-1.2 To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/libsdl1.2/+bug/1481440/+subscriptions -- ubuntu-bugs mailing list ubuntu-bugs@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs