Hi Alexander and thanks for getting back to me so quickly.  In a 64-bit
Tinycore container  "tatsushid/tinycore 7.2-x86_64"
 I edited the Makefile line and tried without success.  Even after trying a
fresh download of the source and adding the "-nopie" to the appropriate
line (#71) I get:

/tmp $ cd picoLisp/src64/
/tmp/picoLisp/src64 $ vi Makefile
/tmp/picoLisp/src64 $ make
/mkAsm x86-64 ".linux" .s Linux base "" ../lib/map  version.l glob.l
main.l gc.l apply.l flo
w.l sym.l subr.l big.l io.l db.l net.l err.l sys/x86-64.linux.code.l
./ersatz/pil: exec: line 5: java: not found
Makefile:159: recipe for target 'x86-64.linux.base.s' failed
make: *** [x86-64.linux.base.s] Error 2

What do you make of this?

On Mon, Dec 12, 2016 at 6:35 AM, Alexander Williams <a...@unscramble.co.jp>
wrote:

> Hi David,
>
> For the stubs-32.h thing.. typically on Debian you would need libc6-i386,
> but that isn't available for 64-bit TinyCore.
>
> For Alpine Linux, you should know that it uses musl not libc, so the
> PicoLisp binary will NOT run on TinyCore if you build it on Alpine (unless
> you have musl.so on Debian..ugh?). To compile/link on Alpine with musl,
> similarly to TinyCore, you'll need to use the 64-bit OS (it exists) for the
> 64-bit binary, and the 32-bit OS for the 32-bit binary.
>
> Anyways for musl (Alpine Linux), just add '-nopie' option to the build
> options in src64/Makefile, ex:
>
>     LD-MAIN = -Wl,--no-as-needed -rdynamic -lc -lm -ldl -nopie
>
> That's literally all I changed to compile picoLisp 64-bit on Alpine Linux
> 64-bit. Probably the same option for 32-bit.. let me know ;)
>
> Good luck!
>
>
> AW
> *https://aw.github.io/picolisp <https://aw.github.io/picolisp>*
>
>
> On Sun, Dec 11, 2016 at 5:41 PM, David Bloom <ipro...@gmail.com> wrote:
>
>> Hello list.  I should have come here sooner looking for someone with more
>> C compiling experience than I have.  I used to compile picoLisp in a
>> Tinycore linux container with ease following these steps:
>>
>> - tce-load compiletc  (this adds gcc, make, etc. so we can compile)
>> - copy picolisp source tarball into container
>> - compile PicoLisp
>> - remove build files
>> - tce-audit builddb
>> - tce-audit delete compiletc
>>
>> A Dockerfile would then copy in the pre-compiled picolisp, add
>> appropriate links for global installation resulting in a tidy, small image.
>>
>> For some time now, following the same process I get this:
>>
>> /tmp/picoLisp/src $ cd ../src64/
>> /tmp/picoLisp/src64 $ make
>> ./mkAsm x86-64 ".linux" .s Linux base "" ../lib/map  version.l glob.l
>> main.l gc.l apply.l flow.l sym.l subr.l big.l io.l db.l net.l err.l
>> sys/x86-64.linux.code.l
>> ../ersatz/pil: exec: line 5: java: not found
>> Makefile:159: recipe for target 'x86-64.linux.base.s' failed
>> make: *** [x86-64.linux.base.s] Error 2
>>
>> And this....
>>
>> /tmp $ cd picoLisp/src
>> /tmp/picoLisp/src $ make
>> gcc -c -O2 -pipe -falign-functions=32 -fomit-frame-pointer
>> -fno-strict-aliasing -W -Wimplicit -Wreturn-type -Wunused -Wformat
>> -Wuninitialized -Wstrict-prototypes -D_GNU_SOURCE  -D_FILE_OFFS
>> ET_BITS=64 -m32 -D_OS='"Linux"' main.c
>> In file included from /usr/include/features.h:389:0,
>>                 from /usr/include/stdio.h:27,
>>                 from pico.h:5,
>>                 from main.c:5:
>> /usr/include/gnu/stubs.h:7:27: fatal error: gnu/stubs-32.h: No such file
>> or directory
>> compilation terminated.
>> Makefile:129: recipe for target 'main.o' failed
>> make: *** [main.o] Error 1
>> /tmp/picoLisp/src $
>>
>> A cursory search led to missing 32-bit libraries in the 64-bit Tinycore
>> image.  No big deal, what if I tried in a Alpine linux container (only
>> 32-bit but small and gaining popularity) similarly:
>>
>> https://jpst.it/QgPQ (Using a paste service due to verbose output)
>>
>> picolisp compiles easily on Netrunner (based on Manjaro based on Arch)
>> which I'm typing this from.  Any C gurus that can make more sense of this
>> is greatly appreciated.  Thanks for reading my short novel and any pointers.
>>
>> -David
>>
>
>

Reply via email to