albaugh@dms.UUCP (Mike Albaugh) (10/05/89)
Apologies in advance to unix.questions for posting where I do not read, but this is really a unix (Xenix) question, brought about by Gnu CC. Synopsis: Gnu CC believes in its bones that it runs on a 32-bit linear addressed machine. I have cross-compiled a target-386 compiler to the .s file level on a vms vax (1.34, compiled by 1.34) _but_ the Xenix loader insists on putting text and data in separate (4-gigabyte) segments, so the first "switch" I execute sends me to never-never land with signal 11 (SIGSEGVIO). I would like to know if anyone has solved this by either getting GCC to apply specific segment overrides on all the instructions where the assumed segment is wrong (I imagine this to be a bear) or by coercing the linker to put everything in one segment. We have the Unix 3.2 distribution. That's how I got it to assemble *nix style .s files. But the ld manual doesn't shed much light on segmentation, other than how to mimic various MSDOS configurations. details: config -> xm-1386v tm.h -> tm-i386v md -> i386.md Xenix/386 System V.2.3.2 with the Unix 3.2 as and /usr/include/xenix Please email, or post to gnu.gcc if you can offer any tips. Mike | Mike Albaugh (albaugh@dms.UUCP || {...decwrl!pyramid!}weitek!dms!albaugh) | Atari Games Corp (Arcade Games, no relation to the makers of the ST) | 675 Sycamore Dr. Milpitas, CA 95035 voice: (408)434-1709 | The opinions expressed are my own (Boy, are they ever)