Skip to content

remove link to libeus from executables, this also remove EUSLIB, which provides RPATH settings that Debian dislike. #522

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .travis.sh
Original file line number Diff line number Diff line change
Expand Up @@ -95,8 +95,8 @@ if [[ "$QEMU" != "" ]]; then
export GIT_SSL_NO_VERIFY=1
git clone http://salsa.debian.org/science-team/euslisp /tmp/euslisp-dfsg
for file in $(cat /tmp/euslisp-dfsg/debian/patches/series); do
# skip patches already applied by https://github.com/euslisp/EusLisp/pull/482, https://github.com/euslisp/EusLisp/pull/511, https://github.com/euslisp/EusLisp/pull/523, https://github.com/euslisp/EusLisp/pull/524, https://github.com/euslisp/EusLisp/pull/525
[[ $file =~ use-rtld-global-loadelf.patch|fix-arm-ldflags.patch|fix-library-not-linked-against-libc.patch|fix-manpage-has-bad-whatis-entry-on-man-pages.patch|fix-jpegmemcd-compile-error.patch|install-bin-lib-man-to-destdir.patch|install-eusjpeg-lib.patch|fix-lintian-typo.patch|fix-makefile-linux-MACHINE.patch|fix-makefile-generic1-version.patch|fix-localtime-arm32.patch|fix-ppc64el-test.patch|fix-for-blhc.patch ]] && continue;
# skip patches already applied by https://github.com/euslisp/EusLisp/pull/482, https://github.com/euslisp/EusLisp/pull/511, https://github.com/euslisp/EusLisp/pull/522, https://github.com/euslisp/EusLisp/pull/523, https://github.com/euslisp/EusLisp/pull/524, https://github.com/euslisp/EusLisp/pull/525
[[ $file =~ use-rtld-global-loadelf.patch|fix-arm-ldflags.patch|fix-library-not-linked-against-libc.patch|fix-manpage-has-bad-whatis-entry-on-man-pages.patch|fix-jpegmemcd-compile-error.patch|install-bin-lib-man-to-destdir.patch|install-eusjpeg-lib.patch|fix-lintian-typo.patch|fix-makefile-linux-MACHINE.patch|fix-makefile-generic1-version.patch|fix-localtime-arm32.patch|fix-ppc64el-test.patch|fix-for-blhc.patch|remove-libeus-link-from-exe.patch|load-lib-from-eusdir-arch-lib.patch ]] && continue;
# skip patch already applied by https://github.com/euslisp/EusLisp/pull/441, https://github.com/euslisp/EusLisp/pull/509, https://github.com/euslisp/EusLisp/pull/512, https://github.com/euslisp/EusLisp/pull/514, https://github.com/euslisp/EusLisp/pull/517
if [[ $file =~ fix-for-reprotest.patch ]]; then
filterdiff -p1 -x 'lisp/image/jpeg/makefile' -x 'lisp/comp/comp.l' < /tmp/euslisp-dfsg/debian/patches/$file > /tmp/euslisp-dfsg/debian/patches/$file-fix
Expand Down
32 changes: 31 additions & 1 deletion lib/eusglrt.l
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,37 @@
;; )
;; irix
(push :GL *features*)
(sys::exec-module-init "oglforeign" "opengl/src/loadgl.l")
(let ((libeusgl (find-if #'(lambda (f) (probe-file f))
(list (concatenate string *eusdir*
(format nil "~A/lib/libeusgl.so"
(cond ((member :solaris2 *features*) "SunOS5")
((member :irix *features*) "IRIX")
((member :irix6 *features*) "IRIX6")
((member :darwin *features*) "Darwin")
((member :sh4 *features*) "LinuxSH4")
((member :linux *features*)
(cond
((member :x86_64 *features*)
"Linux64")
((member :arm *features*)
"LinuxARM")
(t "Linux")))
((member :SunOS4.1 *features*) "SunOS4")
((member :Windows *features*) "Windows")
((member :Windows95 *features*) "Win95")
((member :WindowsNT *features*) "WinNT")
((member :alpha *features*) "Alpha")
((member :cygwin *features*) "Cygwin"))))
(format nil "/usr/lib/~A/euslisp/libeusgl.so" lisp::*deb-host-multiarch*)))))
(if (eq (unix::access libeusgl) t)
(let ((libmod (load libeusgl :entry nil))
(modules `("oglforeign" "gldecl" "glconst" "glforeign" "gluconst" "gluforeign" "glxconst"
"glxforeign" "eglforeign" "eglfunc" "glutil" "gltexture" "glprim"
"gleus" "glview" "toiv")))
(nconc sys::*load-entries*
(sys::list-module-initializers libmod modules))
(sys::exec-module-init "oglforeign"))
(sys::exec-module-init "oglforeign" "opengl/src/loadgl.l")))
(in-package "GL")
(use-package "GEOMETRY")
(unless (find-symbol "*LIBGL*") ; for SunOS4 with .so bug
Expand Down
36 changes: 35 additions & 1 deletion lib/eusrt.l
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,36 @@
;; initilize Xlib interface
(when (and
(or (substringp "sx" (pathname-name *program-name*)) (substringp "gl" (pathname-name *program-name*)))
(sys::exec-module-init "xforeign" "xwindow/loadx.l")
(let ((libeusx (find-if #'(lambda (f) (probe-file f))
(list (concatenate string *eusdir*
(format nil "~A/lib/libeusx.so"
(cond ((member :solaris2 *features*) "SunOS5")
((member :irix *features*) "IRIX")
((member :irix6 *features*) "IRIX6")
((member :darwin *features*) "Darwin")
((member :sh4 *features*) "LinuxSH4")
((member :linux *features*)
(cond
((member :x86_64 *features*)
"Linux64")
((member :arm *features*)
"LinuxARM")
(t "Linux")))
((member :SunOS4.1 *features*) "SunOS4")
((member :Windows *features*) "Windows")
((member :Windows95 *features*) "Win95")
((member :WindowsNT *features*) "WinNT")
((member :alpha *features*) "Alpha")
((member :cygwin *features*) "Cygwin"))))
(format nil "/usr/lib/~A/euslisp/libeusx.so" lisp::*deb-host-multiarch*)))))
(if (eq (unix::access libeusx) t)
(let ((libmod (load libeusx :entry nil))
(modules `("xforeign" "Xdecl" "Xeus" "Xevent" "Xgraphics" "Xcolor" "Xpanel"
"Xitem" "Xtext" "Xmenu" "Xscroll" "Xcanvas" "Xtop" "Xapplwin")))
(nconc sys::*load-entries*
(sys::list-module-initializers libmod modules))
(sys::exec-module-init "xforeign"))
(sys::exec-module-init "xforeign" "xwindow/loadx.l")))
#+(and :thread :x11r6.1)
(InitThreads)
)
Expand Down Expand Up @@ -86,6 +115,11 @@
;;
(unless (find-symbol "*XLIB*") ; for SunOS4 with .so bug
(in-package "IMAGE")
(let ((libmod (find "libeusgeo" lisp::*loaded-modules*
:key #'lisp::load-module-file-name :test #'equal))
(modules `("pixword" "RGBHLS" "convolve" "piximage" "pbmfile" "image_correlation")))
(nconc sys::*load-entries*
(sys::list-module-initializers libmod modules)))
(sys::exec-module-init "pixword")
(sys::exec-module-init "RGBHLS")
(sys::exec-module-init "convolve")
Expand Down
1 change: 1 addition & 0 deletions lib/llib/pgsql.l
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@
((probe-file "/usr/lib/libpq.so") (load "/usr/lib/libpq.so"))
((probe-file "/usr/lib/x86_64-linux-gnu/libpq.so") (load "/usr/lib/x86_64-linux-gnu/libpq.so"))
((probe-file "/usr/lib/i386-linux-gnu/libpq.so") (load "/usr/lib/i386-linux-gnu/libpq.so"))
((probe-file (format nil "/usr/lib/~A/libpq.so" lisp::*deb-host-multiarch*)) (load (format nil "/usr/lib/~A/libpq.so" lisp::*deb-host-multiarch*)))
(t nil)))
#+:cygwin
(setq *libpq* (cond
Expand Down
2 changes: 1 addition & 1 deletion lisp/Makefile.Darwin
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ XLIB= -L/opt/local/lib -L/opt/X11/lib -lX11

# specify directories where euslisp's libraries are located.
EUSLIB= -L$(ADLIBDIR)
GLLIB= -L$/opt/X11/lib -lGLU -lGL -lXext -leusgl
GLLIB= -L$/opt/X11/lib -lGLU -lGL -lXext

# POSIX Thread
THREADDEP=mthread_posix.c
Expand Down
2 changes: 1 addition & 1 deletion lisp/Makefile.Linux
Original file line number Diff line number Diff line change
Expand Up @@ -128,7 +128,7 @@ XLIB= -L/usr/X11R6/lib -lX11
# specify directories where euslisp's libraries are located.
EUSRPATH=-R$(ADLIBDIR):$(EUSDIR)/lib/Linux
EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR)
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext

# POSIX Thread
THREADDEP=mthread_posix.c
Expand Down
2 changes: 1 addition & 1 deletion lisp/Makefile.Linux.thread
Original file line number Diff line number Diff line change
Expand Up @@ -85,7 +85,7 @@ XLIB= -L/usr/X11R6/lib -lX11
# specify directories where euslisp's libraries are located.
EUSRPATH=-R$(ADLIBDIR):$(EUSDIR)/lib/Linux
EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR)
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext

# POSIX Thread
THREADDEP=mthread_posix.c
Expand Down
2 changes: 1 addition & 1 deletion lisp/Makefile.Linux64
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,7 @@ XLIB= -L/usr/X11R6/lib -lX11
# specify directories where euslisp's libraries are located.
EUSRPATH=-R$(ADLIBDIR)
EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR)
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext

# POSIX Thread
THREADDEP=mthread_posix.c
Expand Down
2 changes: 1 addition & 1 deletion lisp/Makefile.LinuxARM
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ XLIB= -L/usr/X11R6/lib -lX11

# specify directories where euslisp's libraries are located.
EUSLIB= -Xlinker -R$(ADLIBDIR):$(EUSDIR)/lib/LinuxARM -L$(ADLIBDIR)
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext

# POSIX Thread
THREADDEP=mthread_posix.c
Expand Down
12 changes: 6 additions & 6 deletions lisp/Makefile.generic2
Original file line number Diff line number Diff line change
Expand Up @@ -199,7 +199,7 @@ $(ADLIBDIR)/$(LIBEUSGEO): $(GEOOBJECTS) $(GEOCOBJECTS) \
$(IMGCOBJECTS) $(IMGOBJECTS))
$(ADLIBDIR)/$(LIBEUSGL): $(GLCOBJECTS) $(GLOBJECTS)
( $(LD) $(SOFLAGS) -o $(ADLIBDIR)/$(LIBEUSGL) \
$(GLCOBJECTS) $(GLOBJECTS))
$(OBJDIR)/oglforeign.c.o $(OBJDIR)/eglfunc.o $(GLOBJECTS))

$(CDIR)/makedate.c: $(filter-out $(CDIR)/makedate.c, $(shell echo $(CDIR)/*.c)) \
$(LDIR)/*.l $(GEODIR)/*.l $(COMPDIR)/*.l \
Expand Down Expand Up @@ -234,7 +234,7 @@ $(BINDIR)/eusg: $(BINDIR)/eus2 $(MTOBJECTS) $(ADLIBDIR)/$(LIBEUSGEO)
($(CC) -o $(BINDIR)/eusg $(LDFLAGS) \
$(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \
$(LCOBJECTS) $(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \
$(COMPOBJECTS) $(EUSLIB) $(GEOLIB) $(RAWLIB) ; \
$(COMPOBJECTS) $(RAWLIB) ; \
cd $(BINDIR); rm -f euscomp; ln -sf eusg euscomp)

$(BINDIR)/eusx: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \
Expand All @@ -246,7 +246,7 @@ $(BINDIR)/eusx: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \
$(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) \
$(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \
$(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \
$(EUSLIB) $(EUSXLIB) $(GEOLIB) $(XLIB) $(RAWLIB);)
$(RAWLIB);)

$(BINDIR)/eus: $(BINDIR)/eusx $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \
$(LCOBJECTS) $(COMPOBJECTS) \
Expand All @@ -257,7 +257,7 @@ $(BINDIR)/eus: $(BINDIR)/eusx $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS
$(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \
$(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \
$(MAPOPTION) \
$(EUSLIB) $(EUSXLIB) $(GEOLIB) $(XLIB) $(RAWLIB) \
$(XLIB) $(RAWLIB) \
>$(ADLIBDIR)/eusmap ; \
cd $(BINDIR); rm -f euscomp eusx; \
ln -sf eus euscomp; ln -sf eus eusx; )
Expand All @@ -278,7 +278,7 @@ $(BINDIR)/eusgl: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \
$(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \
$(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \
$(MAPOPTION) \
$(EUSLIB) $(EUSXLIB) $(GEOLIB) $(GLLIB) $(XLIB) $(RAWLIB)\
$(OBJDIR)/util.o $(GLLIB) $(XLIB) $(RAWLIB) \
>$(ADLIBDIR)/eusmap ;)

$(BINDIR)/raweus.so: $(NOKOBJECTS) $(KOBJECTS) $(LOBJECTS) \
Expand Down Expand Up @@ -336,7 +336,7 @@ $(XOBJECTS) $(XTKOBJECTS): $(OBJDIR)/compile_xwindow.log
$(OBJDIR)/compile_xwindow.log: $(BINDIR)/eusg $(patsubst $(OBJDIR)/%.o,$(XWINDOWDIR)/%.l,$(XOBJECTS)) $(patsubst $(OBJDIR)/%.o,$(XWINDOWDIR)/%.l,$(XTKOBJECTS))
(cd $(XWINDOWDIR); $(BINDIR)/euscomp <../$(TOOLDIR)/compile_xwindow.l > $(OBJDIR)/compile_xwindow.log)
$(GLOBJECTS): $(OBJDIR)/compile_gl.log
$(OBJDIR)/compile_gl.log: $(BINDIR)/eusx $(patsubst $(OBJDIR)/%.o,$(GLDIR)/%.l,$(GLOBJECTS))
$(OBJDIR)/compile_gl.log: $(BINDIR)/eus $(patsubst $(OBJDIR)/%.o,$(GLDIR)/%.l,$(GLOBJECTS))
($(BINDIR)/eusx <$(TOOLDIR)/compile_gl.l > $(OBJDIR)/compile_gl.log)
$(XWINDOWDIR)/Xlibfuncs.o: $(XWINDOWDIR)/Xlibfuncs.c
(cd $(XWINDOWDIR) ; \
Expand Down
1 change: 1 addition & 0 deletions lisp/c/eus.c
Original file line number Diff line number Diff line change
Expand Up @@ -1264,6 +1264,7 @@ register context *ctx;
Spevalof(PACKAGE)=userpkg;

defvar(ctx,"*PROGRAM-NAME*",makestring(progname,strlen(progname)),lisppkg);
defvar(ctx,"*DEB-HOST-MULTIARCH*",makestring("@@DEB_HOST_MULTIARCH@@",strlen("@@DEB_HOST_MULTIARCH@@")),lisppkg);

/* exec_module_initializers(); */
ctx->vsp=ctx->stack;
Expand Down
23 changes: 22 additions & 1 deletion lisp/image/jpeg/eusjpeg.l
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,28 @@

(eval-when (load eval)
(let ((m
(load-foreign (format nil "~A/~A/lib/jpegmemcd" *eusdir* (unix:getenv "ARCHDIR")))))
(load-foreign
(find-if #'probe-file
(list (format nil "~A/~A/lib/jpegmemcd.so" *eusdir*
(cond ((member :solaris2 *features*) "SunOS5")
((member :irix *features*) "IRIX")
((member :irix6 *features*) "IRIX6")
((member :darwin *features*) "Darwin")
((member :sh4 *features*) "LinuxSH4")
((member :linux *features*)
(cond
((member :x86_64 *features*)
"Linux64")
((member :arm *features*)
"LinuxARM")
(t "Linux")))
((member :SunOS4.1 *features*) "SunOS4")
((member :Windows *features*) "Windows")
((member :Windows95 *features*) "Win95")
((member :WindowsNT *features*) "WinNT")
((member :alpha *features*) "Alpha")
((member :cygwin *features*) "Cygwin")))
(format nil "/usr/lib/~A/euslisp/jpegmemcd.so" lisp::*deb-host-multiarch*))))))
(defforeign jpeg_header m "JPEG_header" () :integer)
(defforeign jpeg_decompress m "JPEG_decompress" () :integer)
(defforeign jpeg_compress m "JPEG_compress" () :integer)))
Expand Down
33 changes: 32 additions & 1 deletion lisp/l/eusstart.l
Original file line number Diff line number Diff line change
Expand Up @@ -377,7 +377,38 @@
(sys:alloc 50000)
(in-package "GEOMETRY")
#-:SunOS4.1
(sys::exec-module-init "intersection" nil)
(unless (sys::exec-module-init "intersection" nil)
(let ((libeusgeo (find-if #'(lambda (f) (probe-file f))
(list (concatenate string *eusdir*
(format nil "~A/lib/libeusgeo.so"
(cond ((member :solaris2 *features*) "SunOS5")
((member :irix *features*) "IRIX")
((member :irix6 *features*) "IRIX6")
((member :darwin *features*) "Darwin")
((member :sh4 *features*) "LinuxSH4")
((member :linux *features*)
(cond
((member :x86_64 *features*)
"Linux64")
((member :arm *features*)
"LinuxARM")
(t "Linux")))
((member :SunOS4.1 *features*) "SunOS4")
((member :Windows *features*) "Windows")
((member :Windows95 *features*) "Win95")
((member :WindowsNT *features*) "WinNT")
((member :alpha *features*) "Alpha")
((member :cygwin *features*) "Cygwin"))))
(format nil "/usr/lib/~A/euslisp/libeusgeo.so" lisp::*deb-host-multiarch*)))))
(when (eq (unix::access libeusgeo) t)
(let ((libmod (load libeusgeo :entry nil))
(modules `("intersection" "geoclasses" "geopack" "geobody"
"primt" "compose" "polygon" "viewing" "viewport"
"viewsurface" "hid" "shadow" "bodyrel"
"dda")))
(nconc sys::*load-entries*
(sys::list-module-initializers libmod modules))
(sys::exec-module-init "intersection" nil)))))
#+:SunOS4.1
(unless (sys::exec-module-init "intersection" nil)
(let ((libeusgeo (concatenate string *eusdir*
Expand Down
5 changes: 3 additions & 2 deletions test/loader.l
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

;; check because ldmodule have #if ARM for objname, handle
(deftest test-load
(let ((libpath (format nil "~A/~A/lib/libeusgeo.so" *eusdir*
(let ((libpath (find-if #'probe-file (list (format nil "~A/~A/lib/libeusgeo.so" *eusdir*
(cond ((member :solaris2 *features*) "SunOS5")
((member :irix *features*) "IRIX")
((member :irix6 *features*) "IRIX6")
Expand All @@ -22,7 +22,8 @@
((member :Windows95 *features*) "Win95")
((member :WindowsNT *features*) "WinNT")
((member :alpha *features*) "Alpha")
((member :cygwin *features*) "Cygwin"))))
((member :cygwin *features*) "Cygwin")))
(format nil "/usr/lib/~A/euslisp/libeusgeo.so" lisp::*deb-host-multiarch*))))
libmod)
(format *error-output* "loading ~A~%" libpath)
(setq libmod (load libpath :entry nil))
Expand Down
Loading