On 19 Apr 2006, at 21:25, Adrian Maier wrote:

Ok. I'll try to get 2.0.0 working, but i'll certainly need some guidance at
the beginning.

Of course.

I downloaded the release_2_0_0 from svn , and i am now trying to
compile rtl using the fpc 1.0.10  .

1. cd rtl/netbsd
2. gmake
[...]

/usr/local/bin/ppc386 -dUNIX -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd
-Fi../bsd/i386 -Fi../netbsd/i386 -FE. -FU../../rtl/units/i386-netbsd
-di386 ../bsd/system.pp
Compiling ../bsd/system.pp
system.pp(24,21) Error: Illegal unit name: SYSBSD
system.pp(24,21) Warning: Compiling the system unit requires the - Us switch

This is quite strange. The 2.0.0 netbsd Makefile contains:

$(SYSTEMUNIT)$(PPUEXT) : $(BSDINC)/$(SYSTEMUNIT).pp sysconst.inc systypes.inc sy
scalls.inc $(SYSDEPS)
        $(COMPILER) -Us -Sg $(BSDINC)/$(SYSTEMUNIT).pp

I.e., it does specify -Us

3. I've modified in bsd/system.pp  the line :
  Unit {$ifdef VER1_0}SysBSD{$else}System{$endif};
to :
  Unit System;

  Is this correct ?

At some time, we switched from platform-specific system unit names to "system" for all platforms. Afaik that was when switching from 1.x to 2.x, so normally 1.x should still require sysbsd.

The Makefile contains this:

ifeq ($(findstring 1.0.,$(FPC_VERSION)),)
SYSTEMUNIT=system
LINUXUNIT=
PRT0=prt0
else
SYSTEMUNIT=sysbsd
LINUXUNIT=
override FPCOPT+=-dUNIX
PRT0=prt0_10
endif

So normally it should try to compile sysbsd.pp and not system.pp (rtl/ bsd/sysbsd.pp simply includes the contents of rtl/bsd/system.pp, but a unit file called "system.pp" cannot have the unit name "sysbsd"). Is your /usr/local/bin/ppc386 a version 1.0.10 compiler? What does "/ usr/local/bin/ppc386 -iV" show? And what does "gmake info" show? (when run in the rtl/netbsd directory)

  Then I ran ppc386 manually (and added the -Us switch)  :

/usr/local/bin/ppc386 -dUNIX -Fi../inc -Fi../i386 -Fi../unix -Fi../bsd
-Fi../bsd/i386 -Fi../netbsd/i386 -FE. -FU../../rtl/units/i386-netbsd
-di386 -Us ../bsd/system.pp

4. Ran gmake again , but when building the baseunix unit it is missing some
files:
$(BSDINC)/bunxtype.inc
$(BSDINC)/ctypes.inc
$(BSDINC)/bunxmain.inc
$(BSDINC)/bunxfunc.inc
$(BSDINC)/ossysch.inc
$(BSDINC)/bunxmacr.inc

I have noticed that in freebsd/Makefile these files are not referred .

This is the progress so far.

I think the easiest would be to

a) move rtl/netbsd/Makefile and rtl/netbsd/Makefile.fpc aside for reference
b) copy rtl/freebsd/Makefile.fpc to rtl/netbsd
c) edit the copied Makefile.fpc, changing all "freebsd" to "netbsd" and removing references to gprt0* (that one is only needed for gprof support, and is not implemented for netbsd at this time) d) run "fpcmake" inside the rtl/netbsd directory to regenerate the Makefile from the new Makefile.fpc
e) try running gmake again

If you get errors about missing seemingly OS-specific files, check if those files exist in rtl/freebsd and either copy/adapt them, or if they're not part of a critical unit (like terminfo or so), just remove the involved unit from the units to be compiled in the Makefile.fpc and regenerate the Makefile.


Jonas
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal

Reply via email to