[LLVMbugs] [Bug 12108] New: -m32 fails to work on openSUSE

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Feb 28 02:22:42 PST 2012


http://llvm.org/bugs/show_bug.cgi?id=12108

             Bug #: 12108
           Summary: -m32 fails to work on openSUSE
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: enhancement
          Priority: P
         Component: -New Bugs
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: ismail at namtrac.org
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified


[/havana/down]> cat foo.c 
int main()
{
}

[/havana/down]> clang -m32 foo.c
/usr/bin/ld: skipping incompatible
/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../libc.so when searching for
-lc
/usr/bin/ld: i386:x86-64 architecture of input file
`/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crt1.o' is incompatible
with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file
`/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crti.o' is incompatible
with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file
`/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crtn.o' is incompatible
with i386 output
/usr/bin/ld: /usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crti.o: file
class ELFCLASS64 incompatible with ELFCLASS32
/usr/bin/ld: final link failed: File in wrong format
clang: error: linker command failed with exit code 1 (use -v to see invocation)

[/havana/down]> clang -v -m32 foo.c
SUSE Linux clang version 3.1 (trunk 151521) (based on LLVM 3.1svn)
Target: i386-unknown-linux-gnu
Thread model: posix
 "/usr/bin/clang" -cc1 -triple i386-unknown-linux-gnu -emit-obj -mrelax-all
-disable-free -disable-llvm-verifier -main-file-name foo.c -mrelocation-model
static -mdisable-fp-elim -masm-verbose -mconstructor-aliases -target-cpu
pentium4 -momit-leaf-frame-pointer -v -resource-dir /usr/bin/../lib64/clang/3.1
-fmodule-cache-path /tmp/clang-module-cache -internal-isystem
/usr/local/include -internal-isystem /usr/bin/../lib64/clang/3.1/include
-internal-externc-isystem /include -internal-externc-isystem /usr/include
-fdebug-compilation-dir /havana/down -ferror-limit 19 -fmessage-length 239
-mstackrealign -fgnu-runtime -fobjc-runtime-has-arc -fobjc-runtime-has-weak
-fobjc-fragile-abi -fdiagnostics-show-option -fcolor-diagnostics -o
/tmp/foo-kWpaX7.o -x c foo.c
clang -cc1 version 3.1 based upon LLVM 3.1svn default target
x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/local/include
 /usr/bin/../lib64/clang/3.1/include
 /usr/include
End of search list.
 "/usr/bin/ld" -z relro --hash-style=gnu --hash-style=both --build-id
--enable-new-dtags --eh-frame-hdr -m elf_i386 -dynamic-linker
/lib64/ld-linux.so.2 -o a.out
/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crt1.o
/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crti.o
/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/32/crtbegin.o
-L/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/32
-L/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6
-L/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/lib
-L/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../.. -L/lib -L/usr/lib
/tmp/foo-kWpaX7.o -lgcc --as-needed -lgcc_s --no-as-needed -lc -lgcc
--as-needed -lgcc_s --no-as-needed
/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/32/crtend.o
/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crtn.o
/usr/bin/ld: skipping incompatible
/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../libc.so when searching for
-lc
/usr/bin/ld: i386:x86-64 architecture of input file
`/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crt1.o' is incompatible
with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file
`/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crti.o' is incompatible
with i386 output
/usr/bin/ld: i386:x86-64 architecture of input file
`/usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crtn.o' is incompatible
with i386 output
/usr/bin/ld: /usr/bin/../lib64/gcc/x86_64-suse-linux/4.6/../../../crti.o: file
class ELFCLASS64 incompatible with ELFCLASS32
/usr/bin/ld: final link failed: File in wrong format
clang: error: linker command failed with exit code 1 (use -v to see invocation)

Location for various files:

[/havana/]> find /usr -name crt1.o
/usr/lib64/crt1.o
/usr/lib/crt1.o

[/havana/]> find /usr -name crtbegin.o
/usr/lib64/gcc/x86_64-suse-linux/4.6/32/crtbegin.o
/usr/lib64/gcc/x86_64-suse-linux/4.6/crtbegin.o

gcc run:


[/havana/down]> gcc -v -m32 foo.c
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.6/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.6
--enable-ssp --disable-libssp --disable-plugin
--with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux'
--disable-libgcj --disable-libmudflap --with-slibdir=/lib64 --with-system-zlib
--enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch
--enable-version-specific-runtime-libs --enable-linker-build-id
--program-suffix=-4.6 --enable-linux-futex --without-system-libunwind
--with-arch-32=i586 --with-tune=generic --build=x86_64-suse-linux
Thread model: posix
gcc version 4.6.2 20111212 [gcc-4_6-branch revision 182222] (SUSE Linux) 
COLLECT_GCC_OPTIONS='-v' '-m32' '-mtune=generic' '-march=i586'
 /usr/lib64/gcc/x86_64-suse-linux/4.6/cc1 -quiet -v -imultilib 32 foo.c -quiet
-dumpbase foo.c -m32 -mtune=generic -march=i586 -auxbase foo -version -o
/tmp/ccwiVw38.s
GNU C (SUSE Linux) version 4.6.2 20111212 [gcc-4_6-branch revision 182222]
(x86_64-suse-linux)
        compiled by GNU C version 4.6.2 20111212 [gcc-4_6-branch revision
182222], GMP version 5.0.3, MPFR version 3.1.0-p1, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
#include "..." search starts here:
#include <...> search starts here:
 /usr/lib64/gcc/x86_64-suse-linux/4.6/include
 /usr/local/include
 /usr/lib64/gcc/x86_64-suse-linux/4.6/include-fixed
 /usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/include
 /usr/include
End of search list.
GNU C (SUSE Linux) version 4.6.2 20111212 [gcc-4_6-branch revision 182222]
(x86_64-suse-linux)
        compiled by GNU C version 4.6.2 20111212 [gcc-4_6-branch revision
182222], GMP version 5.0.3, MPFR version 3.1.0-p1, MPC version 0.8.2
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 57555659ed6d758aaf0edb2be09471b2
COLLECT_GCC_OPTIONS='-v' '-m32' '-mtune=generic' '-march=i586'
 /usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/as --32
-o /tmp/ccataEWT.o /tmp/ccwiVw38.s
COMPILER_PATH=/usr/lib64/gcc/x86_64-suse-linux/4.6/:/usr/lib64/gcc/x86_64-suse-linux/4.6/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/4.6/:/usr/lib64/gcc/x86_64-suse-linux/:/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/bin/
LIBRARY_PATH=/usr/lib64/gcc/x86_64-suse-linux/4.6/32/:/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/lib/../lib/:/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../lib/:/lib/../lib/:/usr/lib/../lib/:/usr/lib64/gcc/x86_64-suse-linux/4.6/:/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/lib/:/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../:/lib/:/usr/lib/
COLLECT_GCC_OPTIONS='-v' '-m32' '-mtune=generic' '-march=i586'
 /usr/lib64/gcc/x86_64-suse-linux/4.6/collect2 --build-id --eh-frame-hdr -m
elf_i386 -dynamic-linker /lib/ld-linux.so.2
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../lib/crt1.o
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../lib/crti.o
/usr/lib64/gcc/x86_64-suse-linux/4.6/32/crtbegin.o
-L/usr/lib64/gcc/x86_64-suse-linux/4.6/32
-L/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/lib/../lib
-L/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../lib -L/lib/../lib
-L/usr/lib/../lib -L/usr/lib64/gcc/x86_64-suse-linux/4.6
-L/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../x86_64-suse-linux/lib
-L/usr/lib64/gcc/x86_64-suse-linux/4.6/../../.. /tmp/ccataEWT.o -lgcc
--as-needed -lgcc_s --no-as-needed -lc -lgcc --as-needed -lgcc_s --no-as-needed
/usr/lib64/gcc/x86_64-suse-linux/4.6/32/crtend.o
/usr/lib64/gcc/x86_64-suse-linux/4.6/../../../../lib/crtn.o

[/havana/down]> gcc -###
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib64/gcc/x86_64-suse-linux/4.6/lto-wrapper
Target: x86_64-suse-linux
Configured with: ../configure --prefix=/usr --infodir=/usr/share/info
--mandir=/usr/share/man --libdir=/usr/lib64 --libexecdir=/usr/lib64
--enable-languages=c,c++,objc,fortran,obj-c++,java,ada
--enable-checking=release --with-gxx-include-dir=/usr/include/c++/4.6
--enable-ssp --disable-libssp --disable-plugin
--with-bugurl=http://bugs.opensuse.org/ --with-pkgversion='SUSE Linux'
--disable-libgcj --disable-libmudflap --with-slibdir=/lib64 --with-system-zlib
--enable-__cxa_atexit --enable-libstdcxx-allocator=new --disable-libstdcxx-pch
--enable-version-specific-runtime-libs --enable-linker-build-id
--program-suffix=-4.6 --enable-linux-futex --without-system-libunwind
--with-arch-32=i586 --with-tune=generic --build=x86_64-suse-linux
Thread model: posix
gcc version 4.6.2 20111212 [gcc-4_6-branch revision 182222] (SUSE Linux)

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list