fpc/rtl/netware
Jonas Maebe c13ff3729b * Merged 2.3 branch changes:
+ darwin/ppc64 support
    + val/str/read(ln)/write(ln) support for enums
    + simple cse at the node tree level
    + if-node simplify support
    + simple ssa support for memory locations
    + support for optional overflow/rangecheck boolean parameters for
      operators
    * a lot of unification of the ppc32/ppc64 code generators


........
r6380 | jonas | 2007-02-08 21:25:36 +0100 (Thu, 08 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncgld.pas
   M /branches/fpc_2_3/compiler/tgobj.pas
   A /branches/fpc_2_3/tests/webtbs/tw8283.pp

  + support for replacing the memory location of a temp (including
    local variables) with that of another temp to avoid unnecessary
    copies (mantis #8283)

........
r6381 | jonas | 2007-02-08 22:53:36 +0100 (Thu, 08 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/nflw.pas
   A /branches/fpc_2_3/tests/webtbs/tw8282.pp

  + simplify support for ifn (based on patch by Florian)

........
r6386 | peter | 2007-02-09 13:48:53 +0100 (Fri, 09 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/htypechk.pas
   M /branches/fpc_2_3/compiler/ncal.pas
   M /branches/fpc_2_3/compiler/symconst.pas

  * overflow,rangecheck optional parameters for operators, patch from 8281

........
r6391 | jonas | 2007-02-09 23:52:13 +0100 (Fri, 09 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/agppcgas.pas
   M /branches/fpc_2_3/compiler/powerpc64/cpunode.pas
   D /branches/fpc_2_3/compiler/powerpc64/nppcinl.pas
   M /branches/fpc_2_3/compiler/ppcgen/ngppcinl.pas

  * merged fsqrt(s) support to common powerpc unit, activate for ppc32
    if -Op970 is used (still default for ppc64, since default cpu there
    is already ppc970)

........
r6394 | jonas | 2007-02-10 18:58:47 +0100 (Sat, 10 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  * adapted a_jmp_name for darwin/ppc64
  * merged g_intf_wrapper for ppc32 and ppc64, and added darwin/ppc64
    support to it

........
r6396 | jonas | 2007-02-10 20:16:06 +0100 (Sat, 10 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/cgobj.pas

  + darwin/ppc64 support for g_indirect_sym_load

........
r6397 | jonas | 2007-02-10 20:22:49 +0100 (Sat, 10 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  + darwin/ppc64 support to ppc64's fixref
  * moved ppc32 a_load_store to cgppc and use it for darwin/ppc64 as
    well (its relocatable symbols are only 32 bits large)

........
r6399 | jonas | 2007-02-10 22:02:37 +0100 (Sat, 10 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems.pas

  + system_x86_64_darwin identifier
  + set default source system for system_x86_64_darwin and
    system_powerpc64_darwin

........
r6404 | jonas | 2007-02-10 23:01:23 +0100 (Sat, 10 Feb 2007) | 5 lines
Changed paths:
   M /branches/fpc_2_3/compiler/aasmdata.pas
   M /branches/fpc_2_3/compiler/aggas.pas
   M /branches/fpc_2_3/compiler/cgobj.pas
   M /branches/fpc_2_3/compiler/cgutils.pas
   M /branches/fpc_2_3/compiler/cresstr.pas
   M /branches/fpc_2_3/compiler/dbgdwarf.pas
   M /branches/fpc_2_3/compiler/dbgstabs.pas
   M /branches/fpc_2_3/compiler/ncgutil.pas
   M /branches/fpc_2_3/compiler/ogelf.pas
   M /branches/fpc_2_3/compiler/pdecvar.pas
   M /branches/fpc_2_3/compiler/pmodules.pas
   M /branches/fpc_2_3/compiler/symdef.pas
   M /branches/fpc_2_3/compiler/systems.pas

  + system_x86_64_darwin identifier
  + systems_darwin set which collects all darwin variants
  + added support for darwin/ppc64 and darwin/x86_64 where needed in
    the generic code

........
r6406 | jonas | 2007-02-10 23:24:32 +0100 (Sat, 10 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/cgobj.pas

  * ifdef cpu64 -> ifdef cpu64bit

........
r6409 | jonas | 2007-02-11 00:34:04 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/pdecvar.pas

  * fixed ppc64 compilation

........
r6413 | jonas | 2007-02-11 12:41:27 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/bsd/system.pp
   M /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc
   M /branches/fpc_2_3/rtl/darwin/signal.inc

  + darwin/ppc64 support for signal routines

........
r6415 | jonas | 2007-02-11 13:54:53 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_linux.pas

  * set abi of linux/ppc64 to abi_powerpc_sysv

........
r6416 | jonas | 2007-02-11 13:55:51 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cputarg.pas
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas
   M /branches/fpc_2_3/compiler/systems/t_bsd.pas

  + darwin/ppc64 source and target information

........
r6418 | jonas | 2007-02-11 14:19:55 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/powerpc64/math.inc

  * darwin/ppc64 compilation fixes

........
r6419 | jonas | 2007-02-11 14:22:22 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  * darwin/ppc64 needs the 32 bit version of a_loadaddr_ref_reg

........
r6420 | jonas | 2007-02-11 14:22:55 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/utils/fpcm/fpcmmain.pp

  + darwin/ppc64 support

........
r6426 | jonas | 2007-02-11 16:13:19 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/rappcgas.pas

  * fixed refaddr parsing for darwin/ppc64

........
r6427 | jonas | 2007-02-11 16:14:21 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc/agppcgas.pas
   M /branches/fpc_2_3/compiler/powerpc64/agppcgas.pas
   A /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas

  * moved ppc32/ppc64 assembler writer helpers to a common unit

........
r6430 | jonas | 2007-02-11 17:53:23 +0100 (Sun, 11 Feb 2007) | 4 lines
Changed paths:
   D /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc
   D /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc
   A /branches/fpc_2_3/rtl/darwin/powerpc64
   A /branches/fpc_2_3/rtl/darwin/powerpc64/sig_cpu.inc
   A /branches/fpc_2_3/rtl/darwin/powerpc64/sighnd.inc
   A /branches/fpc_2_3/rtl/darwin/ppcgen
   A /branches/fpc_2_3/rtl/darwin/ppcgen/ppchnd.inc (from /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc:6422)
   A /branches/fpc_2_3/rtl/darwin/ppcgen/sig_ppc.inc (from /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc:6422)
   M /branches/fpc_2_3/rtl/darwin/signal.inc

  * fixed ppc/ppc64 signal include handling (both real files are in
    ppcgen, dummies in powerpc and powerpc64 which include those files)
    (1st step because pre-commit filter can't handle replaced files)

........
r6431 | jonas | 2007-02-11 17:53:47 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   A /branches/fpc_2_3/rtl/darwin/powerpc/sig_cpu.inc
   A /branches/fpc_2_3/rtl/darwin/powerpc/sighnd.inc

  * second step of signal include patch

........
r6432 | jonas | 2007-02-11 19:00:12 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/t_bsd.pas

  * changed darwin checks to use systems_darwin constant

........
r6433 | jonas | 2007-02-11 19:05:38 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas

  * handle non-multiple-of-4 offsets with 64 bit loads/stores for
    darwin/ppc64

........
r6434 | jonas | 2007-02-11 19:05:56 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   D /branches/fpc_2_3/compiler/powerpc/agppcgas.pas
   D /branches/fpc_2_3/compiler/powerpc64/agppcgas.pas
   A /branches/fpc_2_3/compiler/ppcgen/agppcgas.pas (from /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas:6427)
   D /branches/fpc_2_3/compiler/ppcgen/agppcutl.pas

  * completely merged ppc assembler writers

........
r6435 | jonas | 2007-02-11 19:06:40 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/darwin/console.pp
   M /branches/fpc_2_3/rtl/darwin/termiosproc.inc

  * fixed 64 bit compilation

........
r6436 | jonas | 2007-02-11 19:09:28 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/packages/extra/Makefile.fpc

  * universal interfaces aren't 64 bit ready yet -> only compile for
    darwin/ppc and darwin/i386

........
r6438 | jonas | 2007-02-11 19:22:34 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/ctest.o
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext3.o
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext4.o
   A /branches/fpc_2_3/tests/test/cg/obj/darwin/powerpc64/tcext5.o

  + compiled for darwin/ppc64

........
r6439 | jonas | 2007-02-11 20:24:42 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ppcgen/cgppc.pas

  * patch from Thomas to fix linux/ppc64

........
r6440 | jonas | 2007-02-11 20:25:15 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems.pas

  * fixed setting source OS for darwin/ppc64

........
r6444 | florian | 2007-02-11 22:24:20 +0100 (Sun, 11 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/globtype.pas
   M /branches/fpc_2_3/compiler/nopt.pas
   M /branches/fpc_2_3/compiler/nutils.pas
   M /branches/fpc_2_3/compiler/optcse.pas
   M /branches/fpc_2_3/compiler/psub.pas

+ first node cse implementation

........
r6445 | jonas | 2007-02-11 22:30:07 +0100 (Sun, 11 Feb 2007) | 6 lines
Changed paths:
   M /branches/fpc_2_3/compiler/cresstr.pas

  * hack to work around strange darwin/ppc64 linker bug: it seems to
    have problems if you put a global symbol at the end of a section
    without any data following (at least in case of the resource strings
    section) -> add dummy byte at the end for darwin/ppc64 (otherwise
    it messes up the address of the first symbol stub entry)

........
r6449 | jonas | 2007-02-11 23:23:44 +0100 (Sun, 11 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * cpupowerpc is defined for both ppc32 and ppc64 ->
    changed to cpupowerpc32 to avoid defining source
    wrongly on ppc64

........
r6450 | jonas | 2007-02-11 23:26:34 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ppcgen/ngppcset.pas

  * disable jump tables for darwin/ppc64 for now, don't work
    yet for some reason

........
r6451 | florian | 2007-02-11 23:54:37 +0100 (Sun, 11 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncal.pas
   M /branches/fpc_2_3/compiler/nutils.pas
   M /branches/fpc_2_3/compiler/optcse.pas

* improved cse
* better complexity calculation for subscript nodes with classes or interfaces

........
r6456 | jonas | 2007-02-12 19:33:22 +0100 (Mon, 12 Feb 2007) | 4 lines
Changed paths:
   M /branches/fpc_2_3/compiler/nutils.pas

  + support for notn,shln,shrn,equaln,unequaln,gtn,gten,ltn,lten in
    node_cplexity()
  * mark muln,divn,modn as more complex

........
r6469 | jonas | 2007-02-13 15:56:01 +0100 (Tue, 13 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/optcse.pas

  * fixed when cross-compiling a 64 bit compiler from a 32 bit platform

........
r6471 | jonas | 2007-02-13 16:17:16 +0100 (Tue, 13 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cputarg.pas

  * include stabs support (can work on darwin/ppc64, but doesn't work
    yet)

........
r6473 | jonas | 2007-02-13 16:45:48 +0100 (Tue, 13 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/cgcpu.pas
   M /branches/fpc_2_3/compiler/powerpc64/cpupara.pas

  * R2 is a volatile and usable register under darwin/ppc64
  * R13 is a reserved non-volatile register under darwin/ppc64 (tls)

........
r6479 | jonas | 2007-02-13 20:40:50 +0100 (Tue, 13 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * maxCrecordalign seems to have to be 8 rather 4, in spite of what
    the ABI docs say (although they are contradictory to some extent)

........
r6487 | jonas | 2007-02-14 15:57:40 +0100 (Wed, 14 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/tests/webtbs/tw8153a.pp

  * fixed for darwin/ppc64

........
r6488 | jonas | 2007-02-14 15:58:56 +0100 (Wed, 14 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/tests/webtbs/tw7851a.pp

  * fixed for darwin/ppc64

........
r6494 | jonas | 2007-02-15 19:36:55 +0100 (Thu, 15 Feb 2007) | 3 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * set default debug info for darwin/ppc64 to dwarf2 since
    it works better than stabs currently

........
r6500 | jonas | 2007-02-15 21:38:16 +0100 (Thu, 15 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/version.pas

  * updated version to 2.3.0

........
r6505 | jonas | 2007-02-15 22:39:28 +0100 (Thu, 15 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/version.pas

  * changed version to 2.3.1

........
r6511 | jonas | 2007-02-16 15:17:24 +0100 (Fri, 16 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/powerpc64/itcpugas.pas

  * system_powerpc_darwin -> system_powerpc64_darwin

........
r6546 | daniel | 2007-02-18 15:48:54 +0100 (Sun, 18 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncginl.pas
   M /branches/fpc_2_3/compiler/ncgld.pas
   M /branches/fpc_2_3/compiler/ncgrtti.pas
   M /branches/fpc_2_3/compiler/ncnv.pas
   M /branches/fpc_2_3/compiler/ninl.pas
   M /branches/fpc_2_3/compiler/nld.pas
   M /branches/fpc_2_3/compiler/nutils.pas
   M /branches/fpc_2_3/compiler/pinline.pas
   M /branches/fpc_2_3/rtl/inc/astrings.inc
   M /branches/fpc_2_3/rtl/inc/compproc.inc
   M /branches/fpc_2_3/rtl/inc/sstrings.inc
   M /branches/fpc_2_3/rtl/inc/text.inc
   M /branches/fpc_2_3/rtl/inc/wstrings.inc

  + Val/str/read/write support for enumeration types.

........
r6547 | daniel | 2007-02-18 17:01:20 +0100 (Sun, 18 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/sstrings.inc

  * Fix val code that I broke.

........
r6571 | daniel | 2007-02-20 09:27:44 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/astrings.inc
   M /branches/fpc_2_3/rtl/inc/sstrings.inc
   M /branches/fpc_2_3/rtl/inc/text.inc
   M /branches/fpc_2_3/rtl/inc/wstrings.inc

  * o2s -> ord2str, s2o -> str2ord

........
r6572 | daniel | 2007-02-20 09:33:30 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncgld.pas
   M /branches/fpc_2_3/compiler/ncgrtti.pas
   M /branches/fpc_2_3/compiler/ninl.pas
   M /branches/fpc_2_3/compiler/nld.pas

  * o2s -> ord2str, s2o -> str2ord

........
r6574 | daniel | 2007-02-20 12:07:58 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/compproc.inc

  * o2s -> ord2str, s2o -> str2ord

........
r6578 | daniel | 2007-02-20 22:18:49 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/rtl/inc/text.inc

  * Change longint to valsint.

........
r6579 | daniel | 2007-02-20 22:29:09 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ninl.pas

  * Handle ordinal currency types.

........
r6580 | jonas | 2007-02-20 22:29:11 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ncgrtti.pas

  * fixed compilation for cpurequiresproperalignment

........
r6581 | jonas | 2007-02-20 22:30:21 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ninl.pas

  * fixed typo

........
r6582 | daniel | 2007-02-20 22:36:19 +0100 (Tue, 20 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/ninl.pas

  * Set is_real to true.

........
r6590 | jonas | 2007-02-21 20:23:54 +0100 (Wed, 21 Feb 2007) | 2 lines
Changed paths:
   M /branches/fpc_2_3/compiler/systems/i_bsd.pas

  * set tf_dwarf_only_local_labels for darwin/ppc64

git-svn-id: trunk@6720 -
2007-03-04 20:16:57 +00:00
..
demos * log and id tags removed 2005-05-21 09:42:41 +00:00
tests
aio.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
aio.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
audnlm32.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
calnlm32.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
ccs-os.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
ccs.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
classes.pp * Reverted dependency on fgl generics unit. fgl itself remains untouched. 2006-12-19 19:53:21 +00:00
clib.imp * added NetWare Alert 2004-12-16 12:42:54 +00:00
clibaux.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
clibctx.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
clxnlm32.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
convertimp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
crt.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
dos.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
dplsv386.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
dsapi.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
dsevent.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
errno.inc * remove $Log 2005-06-07 09:47:55 +00:00
initc.pp * use ctypes instead of defining own types 2007-01-12 10:56:29 +00:00
keyboard.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
lib0.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
locnlm32.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
Makefile * Merged 2.3 branch changes: 2007-03-04 20:16:57 +00:00
Makefile.fpc * Renamed dynlibs.pas 2007-02-23 11:06:37 +00:00
mouse.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
ndpsrpc.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
netnlm32.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
netware.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
netwsockh.inc * fixes netwares for the new AF_ PF_ 2006-11-24 10:12:31 +00:00
nit.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
nlmlib.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
npackoff.inc * remove $Log 2005-06-07 09:47:55 +00:00
npackon.inc * remove $Log 2005-06-07 09:47:55 +00:00
nwcalls.pp * currected some cvs conversion probs 2005-06-02 11:37:02 +00:00
nwnit.pp * currected some cvs conversion probs 2005-06-02 11:37:02 +00:00
nwpre.as initial import 2005-05-16 18:37:41 +00:00
nwpre.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
nwprot.pp * currected some cvs conversion probs 2005-06-02 11:37:02 +00:00
nwpsrv3x.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
nwpsrv.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
nwserv.pp * currected some cvs conversion probs 2005-06-02 11:37:02 +00:00
nwsnut.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
nwsnut.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
nwsock.inc + Restore and fix text/file socket functionality. 2007-01-14 18:50:19 +00:00
nwsys.inc * remove $Log 2005-06-07 09:47:55 +00:00
prelude.as initial import 2005-05-16 18:37:41 +00:00
qos.inc * remove $Log 2005-06-07 09:47:55 +00:00
README * made commandParser more compatible between clib and libc 2004-12-29 13:01:42 +00:00
requestr.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
sockets.pp + Add constants to Netware socket units too. 2007-01-14 21:26:13 +00:00
socklib.imp initial import 2005-05-16 18:37:41 +00:00
streams.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
sysdir.inc * remove $Log 2005-06-07 09:47:55 +00:00
sysfile.inc * remove $Log 2005-06-07 09:47:55 +00:00
sysheap.inc * remove $Log 2005-06-07 09:47:55 +00:00
sysos.inc * remove $Log 2005-06-07 09:47:55 +00:00
sysosh.inc * remove $Log 2005-06-07 09:47:55 +00:00
system.pp * removed initfpu 2006-11-09 07:48:31 +00:00
systhrd.inc * stack related things (sizes, calculations, etc.) are now 64 bit on 64 bit platforms 2005-11-10 17:06:25 +00:00
sysutils.pp * fix FileSeek implementation to match declaration 2006-11-01 17:47:47 +00:00
threads.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
tli.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
tthread.inc * fixed leaking of TThread 2006-05-14 09:15:09 +00:00
unicode.imp initial import 2005-05-16 18:37:41 +00:00
varutils.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
video.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
vollib.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
winsock.pp * log and id tags removed 2005-05-21 09:42:41 +00:00
ws2_32.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00
ws2nlm.imp * moved rtl/netware/nwimp/*.imp to rtl/netware 2004-08-13 19:57:44 +00:00

    General
    =======

    Currently generating NetWare-NLM's only work under Linux and win32. (may work under other
    unix versions also but this is not tested yet)


    Binutils with netware-support needed
    ====================================

    You need a version of binutils compiled with netware-support. As of FreePascal 1.9.5 Nov 2004
    binutils needs to be named i386-netware-* (i.e. i386-netware-ld, i386-netware-nlmconv).
    Unfortunately in the Linux distibutions this component of the binutils is not included
    so you have to compile it. So download the latest stable binutils package from your
    favourite GNU mirror, decompress it ('tar xfz binutils-x.yy.z.tar.gz' on unices
    with GNU tar), change to the binutils-x.yy.z directory and configure:

      ./configure --prefix=/usr --enable-shared --enable-target=i386-netware

    I used the prefix /usr because thats the default location on redhat (thats what I'm using)

    and use

      make
      make install

    to build and install binutils. To check that netware is supported by the version of binutils
    installed, use i386-netware-ld --version. The emulation 'i386nw' must be present. Also check that 
    i386-netware-nlmconv
    is present and can be started without specifying the complete path of i386-netware-nlmconv.

    You can find more information and a binary version of binutils with netware-support for
    linux on:
           http://home.sch.bme.hu/~keresztg/novell/howto/NLM-Linux-HOWTO.html.

    Binutils for win32 and Fedora Core 2 are available from:
           ftp://ftp.freepascal.org/pub/fpc/contrib/cross
	  

    Building the freepascal runtime-library for netware
    ===================================================

    Install the current fpc sources from ftp.freepascal.org and change to the directory
    rtl/netware under the freepascal sourcetree. Verify the path of your units in
    Makefile. The default is /usr/lib/fpc/1.9.5/units/i386-netware/*.
    Compile and install the rtl with

      make install
      
    This will install the basic rtl files. To install all (packages,fcl and nlm's) do a
    
    make OS_TARGET=netware build
    
    and
    
    make OS_TARGET=netware install
    
    at the fpc source root dir.
    

    Settings and needed files to compile for netware
    ================================================

    Edit your /etc/fpc.cfg and add the rtl source path for netware. This are my settings,
    you may paste it to your fpc.cfg:

#IFDEF Netware_clib
  -Fu/usr/lib/fpc/1.9.5/units/i386-netware/*
  -Fl/usr/lib/fpc/1.9.5/units/i386-netware/rtl
#ENDIF

#IFDEF Netware_libc
  -Fu/usr/lib/fpc/1.9.5/units/i386-netwlibc/*
  -Fl/usr/lib/fpc/1.9.5/units/i386-netwlibc/rtl
  -XPi386-netware-
#ENDIF

    This adds the search path for the rtl-units as well as for the needed import-files.
    You can use the import files from the rtl/netware directory, they are automaticly
    installed. If you want to use import files from novell, be aware that you have to
    convert the files to unix format (i.e. with dos2unix).

    Building the first nlm
    ======================

    Ok, now you have installed all needed files, try the following program and compile it
    with

      ppc386 -Tnetware hello.pas

    PROGRAM Hello;
    {$Description The FreePascal HelloWorld for Netware}
    {$Version 1.0.0}
    {$Copyright Copyright (c) 2001 The FreePascal Development Team}
    {$Screenname FPC Hello World for Netware}

    BEGIN
      WriteLn ('This is open source, FreePascal for netware');
    END.

    Hints on using freepascal for nlm's
    ===================================

    - Compiler Switches for Netware
      -----------------------------
      The following compiler-swiches are supported for NetWare:
      $DESCRIPTION    : NLM-Description, will be displayed at load-time
      $M              : For Stack-Size. Heap-Size will be ignored
      $VERSION x.x.x  : Sets Major, Minor and Revision, Revision 0 is nothing, 1=a, 2=b ...
      $COPYRIGHT      : Sets Copyright, needs a patched nlmconv, patch is
                        available at the location for binutils-win32 shown
                        above.
      $SCREENNAME     : Sets the screen-name (i.e. shown in ctrl-esc screen)
                        $SCREENNAME DEFAULT : output to logger screen
			$SCREENNAME NONE    : no output at all (do not use this, writeln,
			                      even from a runtime error may crash the sever)
			$SCREENNAME MyScreen: Name the screen "MyScreen"
      $THREADNAME     : Sets the thread name (dont use names that are to long
                        for netware, that will prevent your nlm from loading)

    - Exports
      -------

      Exports will be handled like in win32:
      procedure bla; CDECL; EXPORT;
      begin
      end;

      exports bla name 'bla';

      Be aware that without Name 'bla' this will be exported in upper-case.

    - Netware import (.imp) files
      ---------------------------

      Import files are needed by nlmconv as with other netware linkers. FreePascal is
      searching import files via the specified library path (-Fl). If you plan to use
      import files from novell be aware that they have to be converted from CR/LF to
      LF only. The script 'convertimp' in rtl/netware/nwimp will do that.
      If a module name is specified in an import, the module is automaticly
      declared as autoload by FreePascal.

      I.e. the following declaration needs nlmlib.imp and sets nlmlib.nlm as autoload:

        FUNCTION rmdir (path : PCHAR) : LONGINT; CDECL; EXTERNAL 'nlmlib.nlm' NAME 'rmdir';

      while the following declaration only imports the symbol without autoloading:

        FUNCTION rmdir (path : PCHAR) : LONGINT; CDECL; EXTERNAL;

      If nlmlib.nlm is not loaded while loading your nlm, you will get an error about
      unknown symbols.


    - Debugging
      ---------

      Debugging is possible with gdb on Netware 4.11, 5, 6 and 6.5.
      See http://home.arcor.de/armin.diehl/fpcnw/gdbnw.html for details
      

    - Netware SDK
      -----------

      Delphi declarations for the multiplattform api is available at
      http://developer.novell.com. You can download the sdk after registering
      as a developer.
      The files are designed for win32 so they will not work off the box.
      I think changing the dll-name to the corrosponding nlm-name will work.
      i.e. in calwin32.imp the following declaration:

        function NWAbortServicingQueueJob2;  StdCall; external 'calwin32.dll' index 231;

       has to be changed to

        function NWAbortServicingQueueJob2;  CDecl; external 'calwin32.nlm';

armin@freepascal.org