delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1992/11/14/00:35:52

From: mcastle AT cs DOT umr DOT edu
Subject: Re: GO32 multitasking
To: pcrowley AT qdeck DOT com (Peter Crowley)
Date: Fri, 13 Nov 92 23:26:05 CST
Cc: pynq AT midway DOT uchicago DOT edu, djgpp AT sun DOT soe DOT clarkson DOT edu

> Here is my wish list for GO32:
> 1) Multithreading (probably through mutliple TSSs).
> 2) fork().
> 3) signals.
> 4) Port GDB.
> 5) Dynamic Link Libraries.

I came close to finish porting DLD 3.2.3 (Dynamic Link/Unlink Editor).  The
port was fairly straightword and following are the note I made while doing 
the port.

The last problem I had was getting one example to work.  When it unlinked
it's own main, and then tried to link in another's main, it wouldn't work.
I finally used the dld functions to trace it down to it not being able to 
find the symbols DTOR and/or CTOR (been a while since I've played with it,
so these may not be exactly how they are supposed to appear).  I haven't 
had time to work on it lately (school, ya know), or post to gnu.utils.bugs
to see if anyone else has had this problem with gcc 2.x.x.  When I tried 
porting with gcc 1.39, I don't remember having this problem, but then again,
I may had and just not even able to figure out what the problem was then, 
and so never posted the port.

If anyone wants what I have to finish working on the port, I can easily up
load it.  Just unlinking main seems to be the only major problem currently.
The only other dos specific problem that needs to be solved is handling
prepended .exe's, but I imagine that code could easily be taken out of the
code for go32. :->

--------------------<dos-port.log>--------------------------
*   Need to add .suffixes: (.SUFFIXES: won't work) to make work with
    Borland's make 3.6.  Also had to chang ${} to $().

*   N_COMM can't be found in any .h files except stab.h.  Found similiar
    entries in aout.h.  Looked through some other gnu sources to see what
    I could find.  Found it in a.out.gnu.h in binutils-1.9.tar.  Wonder
    why it's not in the DJ's release.  Must ask.

*   Just added N_COMM to aout.h.  Seems to work fine, though LOTS of
    warnings in dld.c and one in remove.c.  All seems to be typecasting
    warnings.  Must do another fix to makefile to handle long command lines.

*   No going to bother trying to deal with unix-isms in test directory make
    file.  Just write a batch program to switch to subdirs.

*   First major obstacle:  add1 package.  Evidently not resolving all
    external references.  When tries to increment, tries to increment [0]
    (whether [0] is a register, memory, or memory location pointer to by
    register, I'm not sure).  Did notice that dld.c *assumes* O_BINARY
    default status for open.  *sigh*  not all systems are unix.....

*   Added O_BINARY to call to open().  add1 package works fine now.  My
    Turbo C++ library refernce says O_BINARY and O_TEXT are not used in
    AT&T based unix.  Damn cr/lf translations.

*   Fixed read-a.out.c to find aout.h instead of a.out.h in the general
    package.

*   Read-a.out.c wants to use a reference to exec.magic from the a.out.h
    structures.  Does not exist in either DJ's distribution, or binutils-1.9
    supplied a.out.gnu.h file.  Both use N_MAGIC(exec) macro to get the
    information instead.  I suppose most system supplied a.out.h files have
    that structure.  Anyway, fixed now to use the macro.

*   Fixed test-def.c to find aout.h.

*   Most of the general package works fine, except for using dos slashes
    in path names instead of unix slashes.  Sometimes works, sometimes
    doesn't.  Seems not to work when path _begins_ with the slash.
    Problem was in checking for a absolute file name.  Also added support
    for DOS style paths with ';' separator.
------------------<end dos-port.log>----------------------------


> 6) Make GO32 (and EMU387) reentrant and have the stub look to see if they are
> already present.
> 
> Peter Crowley
> Quarterdeck Offices Systems
> 
> 

(sorry you got this twice, peter.  First time I used followup instead of 
group followup :-).

mrc

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019