Path: utzoo!censor!geac!torsqnt!news-server.csri.toronto.edu!clyde.concordia.ca!thunder.mcrcim.mcgill.edu!snorkelwacker.mit.edu!usc!julius.cs.uiuc.edu!rpi!uupsi!sunic!compuram!pgd From: pgd@bbt.se Newsgroups: comp.unix.xenix.sco Subject: Re: Xenix files.. Message-ID: <1991Jan6.095033.3709@bbt.se> Date: 6 Jan 91 09:50:33 GMT References: <1991Jan1.234509.3207@robobar.co.uk> <1991Jan2.200940.3320@bbt.se> <1991Jan04.045614.13386@kithrup.COM> Organization: . Lines: 60 In article <1991Jan04.045614.13386@kithrup.COM> sef@kithrup.COM (Sean Eric Fagan) writes: >I am going to try to summarize what I think you've been trying to do, and >then I'm going to tell you why you cannot. If I've misunderstood you, >please let me know, and I will tell you why you're wrong with the new >understanding. Ok, go ahead. >You are trying to generate programs that use shared libraries, using only >the standard Xenix 2.3.0 devsys. You have noticed that the shared libraries >are in /shlib/libc_s, and that an nm of them shows some symbols, which you >assume you can jump to. > >Correct? Correct. I have also verified that you actually can jump to them. >The shared library has unresolved references to malloc and free, among >others. This is so that you can link in your own version of malloc, and all >of the routines in the shared library will use it. Please tell me how you >managed to resolve these? They won't show up unresolved, because there is >no symbol name in the shared library for them; instead, there is a table, >which is filled in by the linker, *IF YOU HAVE THE SHARED LIBRARY ARCHIVE*. I doubt very much that these values are filled in by the linker, since they have to be filled in at run-time. I fill them in in start.c, which is probably what the original version also does. > >>To get the xenix kernel to load the library, I use a program which >>converts the executable x.out file, to an executable coff file, and >>puts in the information to load the library in it. That part works >>nicely. > >*No*. That part only *appears* to work nicely. In reality, it is doing >something very strange, and bizarre, and not terribly useful. Well, if it works, who cares if it does something strange, or not? :-) Seriously, the program converts a x.out image to a coff image. You might think that the need for this is bizarre, and I agree. But considering the -unix switch to 'cc', it seem to be exactly what SCO does on their UNIX system. Besides, shared libraries are very useful, if you want to run X-windows, and have a small amount of memory. >Although it is possible to reverse engineer the stuff necessary for a shared >library, it does not sound as if you have done it. I am sorry to disappoint you, but that is exactly what I have done. P Garbha ------------- Any opinions expressed are my own, and generally unpopular with others. -- Sean Eric Fagan