Freebsd-7.4 + std gcc 4.2.1 fails to honour -march=i586

Julian H. Stacey jhs at berklix.com
Sun Jul 17 01:19:37 UTC 2011


Hi all,
ENVIRONMENT:
    Standard
	gcc version 4.2.1 20070719  [FreeBSD]
    that comes with
	FreeBSD 7.4-RELEASE
    on my 686 host with
	CFLAGS += -march=i586
    in
	/etc/make.conf
    used with
	cd /usr/src/bin/who ; make clean ; make cleandir ; make clean ; make
    reports
	Warning: Object directory not changed from original /usr/src/usr.bin/who
	cc -O2 -fno-strict-aliasing -march=i586   -c /usr/src/usr.bin/who/who.c
	cc -O2 -fno-strict-aliasing -march=i586    -o who who.o 
    looking with
	file who
    reports
	who: ELF 32-bit LSB executable, Intel 80386, version 1
		(FreeBSD), for FreeBSD 7.4, dynamically linked (uses shared
		libs), FreeBSD-style, not stripped

Problem:
    Use it from a 586 7.4-RELEASE host (AMD+NFS) 
	file /host/sony/usr/src/usr.bin/who/who
	/host/sony/usr/src/usr.bin/who/who: ELF 32-bit LSB executable,
		Intel 80386, version 1 (FreeBSD), for FreeBSD 7.4, dynamically
		linked (uses shared libs), FreeBSD-style, not stripped
	/host/sony/usr/src/usr.bin/who/who
    fails with
	Illegal instruction

    It's nothing special about /who. 
    Nothing to do with AMD+NFS, 
	As I've used cp too before executing,
	I first found this while cross compiling from a fast 686
	to install on a slow 586 for 7.3 to 7.4 upgrade, All these
	binaries were not excutable on the 586: /boot/loader
	/sbin/init /bin/sh /bin/csh getty 

Can someone else please confirm this observation ?

Cheers,
Julian
-- 
Julian Stacey, BSD Unix Linux C Sys Eng Consultants Munich http://berklix.com
 Reply below, not above;  Indent with "> ";  Cumulative like a play script.
 Format: Plain text. Not HTML, multipart/alternative, base64, quoted-printable.


More information about the freebsd-hackers mailing list