_whitelogger has joined #picolisp
orivej has quit [Ping timeout: 264 seconds]
_whitelogger has joined #picolisp
_whitelogger has joined #picolisp
orivej has joined #picolisp
Blukunfando has quit [Ping timeout: 272 seconds]
orivej has quit [Ping timeout: 240 seconds]
tankf33der has quit []
tankf33der has joined #picolisp
orivej has joined #picolisp
aw- has quit [Quit: Leaving.]
LamBaah has joined #picolisp
LamBaah has quit [Client Quit]
Blukunfando has joined #picolisp
LamBaah has joined #picolisp
orivej has quit [Ping timeout: 256 seconds]
orivej has joined #picolisp
LamBaah has quit [Quit: leaving]
LamBaah has joined #picolisp
LamBaah has quit [Ping timeout: 256 seconds]
<
tankf33der>
Regenaxer: pil21 compilation is broken
<
Regenaxer>
strange
<
Regenaxer>
Needs <dlfcn.h>
<
Regenaxer>
I released
<
Regenaxer>
can you try again?
<
Regenaxer>
Strange, here on Debian it compiled
<
tankf33der>
the same error
<
Regenaxer>
RTLD_DEFAULT
<
tankf33der>
RTLD_DEFAULT,
<
tankf33der>
what i see in mine.
<
Regenaxer>
yes, ./dlfcn.h:# define RTLD_DEFAULT ((void *) 0)
<
Regenaxer>
I used 0 before
<
Regenaxer>
on Mac it is -2
<
Regenaxer>
So I pass RTLD_DEFAULT
<
Regenaxer>
in src/lib.c
<
Regenaxer>
Why does it say undefined?
<
tankf33der>
it says undeclared
<
Regenaxer>
I include <dlfcn.h> now
<
Regenaxer>
in src/pico.h
<
Regenaxer>
On Debian it is O sk
<
tankf33der>
i see this new line
<
Regenaxer>
Maybe I broke something else?
<
Regenaxer>
I changed only src/lib.c and src/pico.h
<
Regenaxer>
you have the new pico.h?
<
Regenaxer>
> #include <dlfcn.h>
<
Regenaxer>
#include <dlfcn.h>
*was* already in src/lib.c
<
Regenaxer>
so not needed in pico.h
<
Regenaxer>
I remove again
<
Regenaxer>
So what goes wrong?
<
Regenaxer>
Which system?
<
tankf33der>
modern linux
<
Regenaxer>
I used this code already in pil32 20 years ago
<
Regenaxer>
<dlfcn.h>
<
tankf33der>
On some hosts (e.g. SuSe and Ubuntu Linux) 'RTLD_NEXT' (and
<
tankf33der>
-- '_GNU_SOURCE'.
<
tankf33der>
-- 'RTLD_DEFAULT') are not visible without setting the macro
<
tankf33der>
found this in google.
<
tankf33der>
#ifdef __USE_GNU
<
tankf33der>
the run-time address of the symbol called NAME in the next shared
<
tankf33der>
/* If the first argument of `dlsym' or `dlvsym' is set to RTLD_NEXT
<
tankf33der>
the shared objects were loaded. */
<
tankf33der>
object is returned. The "next" relation is defined by the order
<
tankf33der>
# define RTLD_NEXT((void *) -1l)
<
tankf33der>
/* If the first argument to `dlsym' or `dlvsym' is set to RTLD_DEFAULT
<
tankf33der>
the run-time address of the symbol called NAME in the global scope
<
tankf33der>
is returned. */
<
tankf33der>
# define RTLD_DEFAULT((void *) 0)
<
tankf33der>
in my system it is under __USE_GNU
<
Regenaxer>
forcing GNU is ugly
<
Regenaxer>
what is a portable way?
<
tankf33der>
maybe you want detect darwin and set it to -2 ?
<
Regenaxer>
Thats not portable
<
Regenaxer>
There must be a way to specify the current executable
<
Regenaxer>
why did it work in pil32?
<
Regenaxer>
it run on Darwin too
<
Regenaxer>
not in this way
<
Regenaxer>
no 'native'
<
Regenaxer>
only lib/ht and lib/ext
<
Regenaxer>
But emu ran on MacOS, no?
<
Regenaxer>
emu has native
<
tankf33der>
somebody on ML told it run
<
Regenaxer>
Andras said it worked
<
Regenaxer>
In pil64 I used NULL for the lib
<
Regenaxer>
just as in pil21 until today
<
Regenaxer>
So NULL was better, but does not work on MacOS? Why did it work in emu?
<
Regenaxer>
I give up
<
Regenaxer>
but Andras said it worked
<
Regenaxer>
ok, I define _GNU_SOURCE
<
Regenaxer>
hmm, no
<
Regenaxer>
Does
*not* build under Debian
<
Regenaxer>
builds only under Termux
<
Regenaxer>
I revert
<
Regenaxer>
Give up
<
Regenaxer>
fed up with BSD, Mac and all that crap
<
Regenaxer>
Take more Whiskey
<
tankf33der>
sleep.
<
Regenaxer>
yesss :)