Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!ut-sally!im4u!rutgers!sunybcs!bingvaxu!leah!uwmcsd1!marque!ddsw1!gryphon!greg From: greg@gryphon.CTS.COM (Greg Laskin) Newsgroups: comp.unix.xenix Subject: Re: YAXP (yet another Xenix problem) Message-ID: <1474@gryphon.CTS.COM> Date: Tue, 8-Sep-87 18:54:45 EDT Article-I.D.: gryphon.1474 Posted: Tue Sep 8 18:54:45 1987 Date-Received: Thu, 10-Sep-87 06:40:14 EDT References: <1987Sep7.051456.1836@gpu.utcs.toronto.edu> Reply-To: greg@gryphon.CTS.COM (Greg Laskin) Distribution: na Organization: Trailing Edge Technology, Redondo Beach, CA Lines: 61 In article <1987Sep7.051456.1836@gpu.utcs.toronto.edu> onn@gpu.utcs.toronto.edu (Brian Onn) writes: > >This seems to have worked. But now I have another problem: > >Fixup overflow near 008b in segment PREPROC_TEXT in /lib/Llibc.a(signal.o) > offset 262d8H > This is the result of a bug in the SCO SV 286 2.1.3 Large model library. It may or may not be present in other versions of Xenix. A fixup overflow occurs when the linker attemps to resolve an external reference by adding an relocation bias to an offset and get a result that exceeds 65535. In 2.1.3 Large model library, signal.o contains a NEAR call to an EXTERNAL routine. The external routine in resolved in the header files that are always included by the linker prior to the modules you specify on the command line. Thus the external routine (I believe it's loadds()) is always in the first CODE segment. If the program has more than one code segment, signal.o usually does NOT end up in the first code segment since its in the library and is loaded after all the modules specified in the comand line. The fixup overflow occurs when the resulting intersegment call from the signal module can't be resolved because it needs to be a far call. The work-around: 1. Extract signal.o from the Large model library. ar x /lib/Llibc.a signal.o 2. Load signal.o prior to loading other program modules to assure it ends up in the first code segment. cc - signal.o ${OBJS} To see the command lines issued to the various passes of the compiler and linker by cc, use -d switch. to loadds from signal cannot be resolved with a >It seems that many of the LIBRARY routines use PREPROC_TEXT for their text >segment name. I'm not up on how fixups work (but I know what they are), and >so cannot see what to do here. > >Does any one have any more suggestions for me. > >Thanks in advance, > Brian. > >-- >-------------- >Brian A. Onn >University of Toronto Computing Services >Erindale College >...{utzoo, ihnp4, decvax}!utcs!onn -- Greg Laskin "When everybody's talking and nobody's listening, how can we decide?" INTERNET: greg@gryphon.CTS.COM UUCP: {hplabs!hp-sdd, sdcsvax, ihnp4}!crash!gryphon!greg UUCP: {philabs, scgvaxd}!cadovax!gryphon!greg