Menu

"nitros9/lib" folder is obsolete

Developers
2014-12-18
2016-03-03
  • Bill Pierce

    Bill Pierce - 2014-12-18

    Again, I post this here as I cannot post to "Tickets". I think it's only set to developer access, and I would think anyone using Nitros9 should be able to post a ticket.
    Anyway... I was purusing my local copy of the NOS9 repo and noticed that the "nitros9/lib" folder still contained the oldeer versions of the NOS9 "defs" files... These have long been moved to "nitros9/defs" (where they should be). But... if those are removed, what is left is the "nitros9/lib/alib" and "nitos9/lib/kreiderclib" folders. These two folders are being built improperly into "xxx.a" files (??)... They were already "xxx.a" files (for the most part) which in OS-9 is defined as "rma source files". I think (as Tormod explained to me) they were thought to be some sort of collection defined as "xxx.a" library files used by something other than OS9 (??).
    In fact, they are the (OS9) rma source files for:
    "clib.l" The definitive "replacement for Tandy's "clib.l" (1991 version) by Carl Kreider which belongs in the "nitros9/3rdparty/packages/cc/lib" folder.
    &
    "alib.l" RMA machine language subroutine library by Bob van der Poel (as the docs in the folder describe it) and belong in the "nitros9/3rdparty/packages/cc/lib" folder.

    Since these files have not been "properly" massaged to the 3.3.0 build standards, I suggest just moving the complete source folders as they are. The can be worked on later to be made to build properly as the are essential to the C compiler and the RMA assembler. I would just comment them out of the makefiles for now until they have been fixed to compile properly.
    As it stands now, they are being assembled into object files (xxx.o) and then merged as "libalib.a" and libclib.a" which is wrong. The compiled object files (xxx.o) should be merged into "alib.l" and "clib.l" respectively, then the "xxx.o" files removed (currently they remain for some reason).
    And No... they cannot be altered to assembled with the asm assembler as they must retain their variable pointers for later use with the OS9 linker (rlink) to be used with the C compiler or OS9 rma system. They must be assembled with RMA.

    I use Carl Kreider's "clib.l" library daily in compiling my MShell project and Bob va der Poel's "alib.l" library whenever I'm using RMA. It would be nice to see these added to the "CC.dsk" image as the Tandy "clib.l" is buggy as hell. It's time that disk image got a makeover anyway as I thought the Nitros9 repository was a to "move on to better things" and not a palce to "let's preserve the old buggy things" :-)

    Bill P.

     
  • Tormod Volden

    Tormod Volden - 2016-03-03

    Hi Bill,
    1. the defs files have meanwhile been cleaned up.
    2. the alib is used in building nitros9 commands - this is why it gets built and in form of lwasm .a libraries - not for "OS9". If we want to also build these as prebuilt RMA .l libraries and ship on disk images for use under OS-9 that is another question and a good one.
    3. kreiderclib is not built or used during the nitros9 build. Why it is in this lib folder is not clear to me, probably is was just thrown in here to have it in the repo.
    4. the clib.l in 3rdparty/packages/cc/lib is a binary without source as far as I can see. Maybe it can be replaced by a RMA build of kreiderclib, as you suggest.
    5. is it any helpful to have these alib and kreiderclib source files on any disk images, or just RMA libraries of them?
    6. can these libraries actually be cross-built as RMA libraries during the nitros9 build? lwtools can only generate its own object and library formats. Toolshed has ar2, c3 and casm, but I don't know the shape of these tools. I wouldn't like to do it that way, but in the worst case we could build these on OS9 and copy the binaries into the repo (like the existing clib.l).

     

Anonymous
Anonymous

Add attachments
Cancel