getting  "ld: fatal: file smartd.o: wrong ELF class: ELFCLASS64" when trying to 
build 64 bit versions of programs for most things where the 32 bit version  
builds fine.

gmake  all-recursive
gmake[1]: Entering directory `/home/andre.l/smart/smartmontools-5.38'
Making all in .
gmake[2]: Entering directory `/home/andre.l/smart/smartmontools-5.38'
source='utility.cpp' object='utility.o' libtool=no \
        DEPDIR=.deps depmode=none /usr/bin/bash ./depcomp \
        CC -DHAVE_CONFIG_H -I.  -DSMARTMONTOOLS_SYSCONFDIR=\"/usr/local/etc\" 
-m64   -erroff=%none,wbadinitl,wbadasgl,badargtypel2w -xO2  
-library=no%Cstd,no%Crun  -c -o utility.o utility.cpp
source='os_solaris.cpp' object='os_solaris.o' libtool=no \
        DEPDIR=.deps depmode=none /usr/bin/bash ./depcomp \
        CC -DHAVE_CONFIG_H -I.  -DSMARTMONTOOLS_SYSCONFDIR=\"/usr/local/etc\" 
-m64   -erroff=%none,wbadinitl,wbadasgl,badargtypel2w -xO2  
-library=no%Cstd,no%Crun  -c -o os_solaris.o os_solaris.cpp
CC  -erroff=%none,wbadinitl,wbadasgl,badargtypel2w -xO2  
-library=no%Cstd,no%Crun   -library=no%Cstd,no%Crun  -o smartd smartd.o 
atacmdnames.o atacmds.o ataprint.o knowndrives.o scsicmds.o scsiata.o 
scsiprint.o utility.o  os_solaris.o  -lnsl 
ld: fatal: file smartd.o: wrong ELF class: ELFCLASS64
ld: fatal: file processing errors. No output written to smartd
gmake[2]: *** [smartd] Error 1
gmake[2]: Leaving directory `/home/andre.l/smart/smartmontools-5.38'
gmake[1]: *** [all-recursive] Error 1
gmake[1]: Leaving directory `/home/andre.l/smart/smartmontools-5.38'
gmake: *** [all] Error 2

for d in `ls *.o`; do file $d; done
atacmdnames.o:  ELF 64-bit LSB relocatable AMD64 Version 1
atacmds.o:      ELF 64-bit LSB relocatable AMD64 Version 1 [CMOV]
ataprint.o:     ELF 64-bit LSB relocatable AMD64 Version 1 [CMOV]
knowndrives.o:  ELF 64-bit LSB relocatable AMD64 Version 1 [CMOV]
os_solaris.o:   ELF 64-bit LSB relocatable AMD64 Version 1 [CMOV]
scsiata.o:      ELF 64-bit LSB relocatable AMD64 Version 1 [CMOV]
scsicmds.o:     ELF 64-bit LSB relocatable AMD64 Version 1 [CMOV]
scsiprint.o:    ELF 64-bit LSB relocatable AMD64 Version 1 [SSE2 CMOV]
smartd.o:       ELF 64-bit LSB relocatable AMD64 Version 1 [SSE CMOV]
utility.o:      ELF 64-bit LSB relocatable AMD64 Version 1 [CMOV]

if I recompose the failure line and add -m64 it completes. Am I doing something 
wrong or is there something wrong with the code? Can someone guide me on a 
proper fix for this?

CC  -erroff=%none,wbadinitl,wbadasgl,badargtypel2w -m64 -xO2  
-library=no%Cstd,no%Crun   -library=no%Cstd,no%Crun  -o smartd smartd.o 
atacmdnames.o atacmds.o ataprint.o knowndrives.o scsicmds.o scsiata.o 
scsiprint.o utility.o  os_solaris.o  -lnsl

This is the env used:
export CC=/opt/SUNWspro/bin/cc
export CCX=/opt/SUNWspro/bin/CC
export CONFIG_SHELL=/usr/bin/bash
export PATH=/opt/SUNWspro/bin:/usr/bin:/usr/sbin:/usr/ccs/bin:/usr/ucb
ulimit -s 32768
export CXXFLAGS=" -library=no%Cstd,no%Crun "
export LDFLAGS=" -library=no%Cstd,no%Crun "
export CFLAGS=" -m64 "
export CPPFLAGS=" -m64 "
-- 
This message posted from opensolaris.org
_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to