Re[2]: picoLisp on FreeBSD 9.1 x64

2013-01-01 Thread Mansur Mamkin
OK, so I made 32bit jail by this instructions: 
http://www.gundersen.net/32bit-jail-on-64bit-freebsd/
and rebuilt pil. Now all seems goes well. Now I need to get working IPv6 
address inside a jail, but I should go now :)


Вторник,  1 января 2013, 11:23 +01:00 от Alexander Burger 
a...@software-lab.de:
 Hi Mansur,
 
  I found this: 
  http://lists.freebsd.org/pipermail/freebsd-questions/2010-August/220250.html
  Maybe the problem is with system headers, that are not 32bit aware on 
  FreeBSD x64
 
 Indeed. This describes quite well the possible reason of the problems.
 
 
  Btw, what about x64 version of picoLisp on FreeBSD? Is this possible
  and how I can help with it?
 
 Good idea! We should try to get pil64 running then.
 
 If the architecture is x86-64, we just need to extend src64/Makefile a
 little (i.e. add a clause for 'FreeBSD', similar to the 'SunOS' stuff),
 and create two new files
 
src64/sys/x86-64.freeBsd.defs.l
src64/sys/x86-64.freeBsd.code.l
 
 The defs.l file can be generated pretty easily now, because since the
 'emu' version we have a C-Programm 'src64/sysdefs' which prints most of
 its contents ('emu' simply includes the standard output of that
 program).
 
 The code.l might be more difficult. It holds a set of stub functions
 which are system dependent, and which can be found by compiling and
 disassembling test programs in C, or perhaps by looking at the proper
 macro expansions in the system's include files. So here some detective
 work is necessary ;-)
 
 ♪♫ Alex
 -- 
 UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe
 

Re[2]: picoLisp on FreeBSD 9.1 x64

2013-01-01 Thread Mansur Mamkin
 Hi all!
I tried to build x64 version of pil on FreeBSD, 
but I ended up with the following errors:

root@proto:/root/picoLisp/src64 # gmake
x86-64.freeBsd.base.o: In function `giveupX':
(.text+0x459): undefined reference to `stderr'
x86-64.freeBsd.base.o: In function `execErrS':
(.text+0x496): undefined reference to `stderr'
x86-64.freeBsd.base.o: In function `.38':
(.text+0x8c3): undefined reference to `stderr'
x86-64.freeBsd.base.o: In function `.341':
(.text+0x35d6): undefined reference to `stdin'
x86-64.freeBsd.base.o: In function `.341':
(.text+0x3607): undefined reference to `stdout'
x86-64.freeBsd.base.o: In function `.341':
(.text+0x3638): undefined reference to `stderr'
x86-64.freeBsd.base.o: In function `.3140':
(.text+0x1a8ea): undefined reference to `stderr'
x86-64.freeBsd.base.o: In function `ignLog':
(.text+0x1ab85): undefined reference to `stderr'
x86-64.freeBsd.base.o: In function `errno_A':
(.text+0x1d5e1): undefined reference to `___errno'
x86-64.freeBsd.base.o: In function `errnoC':
(.text+0x1d5f1): undefined reference to `___errno'
gmake: *** [../bin/picolisp] Error 1

I added following lines In Makefile:

...
ifeq ($(MAKECMDGOALS), x86-64.freeBsd)
UNAME = FreeBSD
MACHINE = x86_64
 ...
ifeq ($(UNAME), FreeBSD)
--OS = FreeBSD
--SYS = .freeBsd
--FMT = .s
--ARCH = x86-64
--AS = as --64
--LD-MAIN = -lc -lm
--LD-SHARED = -m64 -shared
--STRIP = strip
endif

I don't know how to change x86-64.freeBsd.code.l
I found this in man errno:
extern int * __error();
#define errno (* __error())

Best regards,
Mansur