Skip to content

Commit 1b7ba78

Browse files
authored
Merge pull request #522 from k-okada/remove-libeuslink
remove link to libeus from executables, this also remove EUSLIB, which provides RPATH settings that Debian dislike.
2 parents 03efbba + d9471e5 commit 1b7ba78

16 files changed

+155
-35
lines changed

.travis.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -93,11 +93,11 @@ if [[ "$QEMU" != "" ]]; then
9393
export GIT_SSL_NO_VERIFY=1
9494
git clone http://salsa.debian.org/science-team/euslisp /tmp/euslisp-dfsg
9595
for file in $(cat /tmp/euslisp-dfsg/debian/patches/series); do
96-
# 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
97-
[[ $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;
96+
# 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
97+
[[ $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|fix-for-hardening.patch ]] && continue;
9898
# 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
9999
if [[ $file =~ fix-for-reprotest.patch ]]; then
100-
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
100+
filterdiff -p1 -x 'lisp/image/jpeg/makefile' -x 'lisp/l/common.l' -x 'lisp/comp/comp.l' < /tmp/euslisp-dfsg/debian/patches/$file > /tmp/euslisp-dfsg/debian/patches/$file-fix
101101
file=$file-fix
102102
fi
103103
echo $file

lib/eusglrt.l

Lines changed: 31 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,37 @@
2222
;; )
2323
;; irix
2424
(push :GL *features*)
25-
(sys::exec-module-init "oglforeign" "opengl/src/loadgl.l")
25+
(let ((libeusgl (find-if #'(lambda (f) (probe-file f))
26+
(list (concatenate string *eusdir*
27+
(format nil "~A/lib/libeusgl.so"
28+
(cond ((member :solaris2 *features*) "SunOS5")
29+
((member :irix *features*) "IRIX")
30+
((member :irix6 *features*) "IRIX6")
31+
((member :darwin *features*) "Darwin")
32+
((member :sh4 *features*) "LinuxSH4")
33+
((member :linux *features*)
34+
(cond
35+
((member :x86_64 *features*)
36+
"Linux64")
37+
((member :arm *features*)
38+
"LinuxARM")
39+
(t "Linux")))
40+
((member :SunOS4.1 *features*) "SunOS4")
41+
((member :Windows *features*) "Windows")
42+
((member :Windows95 *features*) "Win95")
43+
((member :WindowsNT *features*) "WinNT")
44+
((member :alpha *features*) "Alpha")
45+
((member :cygwin *features*) "Cygwin"))))
46+
(format nil "/usr/lib/~A/euslisp/libeusgl.so" lisp::*deb-host-multiarch*)))))
47+
(if (eq (unix::access libeusgl) t)
48+
(let ((libmod (load libeusgl :entry nil))
49+
(modules `("oglforeign" "gldecl" "glconst" "glforeign" "gluconst" "gluforeign" "glxconst"
50+
"glxforeign" "eglforeign" "eglfunc" "glutil" "gltexture" "glprim"
51+
"gleus" "glview" "toiv")))
52+
(nconc sys::*load-entries*
53+
(sys::list-module-initializers libmod modules))
54+
(sys::exec-module-init "oglforeign"))
55+
(sys::exec-module-init "oglforeign" "opengl/src/loadgl.l")))
2656
(in-package "GL")
2757
(use-package "GEOMETRY")
2858
(unless (find-symbol "*LIBGL*") ; for SunOS4 with .so bug

lib/eusrt.l

Lines changed: 35 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,36 @@
4646
;; initilize Xlib interface
4747
(when (and
4848
(or (substringp "sx" (pathname-name *program-name*)) (substringp "gl" (pathname-name *program-name*)))
49-
(sys::exec-module-init "xforeign" "xwindow/loadx.l")
49+
(let ((libeusx (find-if #'(lambda (f) (probe-file f))
50+
(list (concatenate string *eusdir*
51+
(format nil "~A/lib/libeusx.so"
52+
(cond ((member :solaris2 *features*) "SunOS5")
53+
((member :irix *features*) "IRIX")
54+
((member :irix6 *features*) "IRIX6")
55+
((member :darwin *features*) "Darwin")
56+
((member :sh4 *features*) "LinuxSH4")
57+
((member :linux *features*)
58+
(cond
59+
((member :x86_64 *features*)
60+
"Linux64")
61+
((member :arm *features*)
62+
"LinuxARM")
63+
(t "Linux")))
64+
((member :SunOS4.1 *features*) "SunOS4")
65+
((member :Windows *features*) "Windows")
66+
((member :Windows95 *features*) "Win95")
67+
((member :WindowsNT *features*) "WinNT")
68+
((member :alpha *features*) "Alpha")
69+
((member :cygwin *features*) "Cygwin"))))
70+
(format nil "/usr/lib/~A/euslisp/libeusx.so" lisp::*deb-host-multiarch*)))))
71+
(if (eq (unix::access libeusx) t)
72+
(let ((libmod (load libeusx :entry nil))
73+
(modules `("xforeign" "Xdecl" "Xeus" "Xevent" "Xgraphics" "Xcolor" "Xpanel"
74+
"Xitem" "Xtext" "Xmenu" "Xscroll" "Xcanvas" "Xtop" "Xapplwin")))
75+
(nconc sys::*load-entries*
76+
(sys::list-module-initializers libmod modules))
77+
(sys::exec-module-init "xforeign"))
78+
(sys::exec-module-init "xforeign" "xwindow/loadx.l")))
5079
#+(and :thread :x11r6.1)
5180
(InitThreads)
5281
)
@@ -86,6 +115,11 @@
86115
;;
87116
(unless (find-symbol "*XLIB*") ; for SunOS4 with .so bug
88117
(in-package "IMAGE")
118+
(let ((libmod (find "libeusgeo" lisp::*loaded-modules*
119+
:key #'lisp::load-module-file-name :test #'equal))
120+
(modules `("pixword" "RGBHLS" "convolve" "piximage" "pbmfile" "image_correlation")))
121+
(nconc sys::*load-entries*
122+
(sys::list-module-initializers libmod modules)))
89123
(sys::exec-module-init "pixword")
90124
(sys::exec-module-init "RGBHLS")
91125
(sys::exec-module-init "convolve")

lib/llib/pgsql.l

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,7 @@
9797
((probe-file "/usr/lib/libpq.so") (load "/usr/lib/libpq.so"))
9898
((probe-file "/usr/lib/x86_64-linux-gnu/libpq.so") (load "/usr/lib/x86_64-linux-gnu/libpq.so"))
9999
((probe-file "/usr/lib/i386-linux-gnu/libpq.so") (load "/usr/lib/i386-linux-gnu/libpq.so"))
100+
((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*)))
100101
(t nil)))
101102
#+:cygwin
102103
(setq *libpq* (cond

lisp/Makefile.Darwin

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ XLIB= -L/opt/local/lib -L/opt/X11/lib -lX11
8888

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

9393
# POSIX Thread
9494
THREADDEP=mthread_posix.c

lisp/Makefile.Linux

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ XLIB= -L/usr/X11R6/lib -lX11
128128
# specify directories where euslisp's libraries are located.
129129
EUSRPATH=-R$(ADLIBDIR):$(EUSDIR)/lib/Linux
130130
EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR)
131-
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl
131+
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext
132132

133133
# POSIX Thread
134134
THREADDEP=mthread_posix.c

lisp/Makefile.Linux.thread

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,7 @@ XLIB= -L/usr/X11R6/lib -lX11
8585
# specify directories where euslisp's libraries are located.
8686
EUSRPATH=-R$(ADLIBDIR):$(EUSDIR)/lib/Linux
8787
EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR)
88-
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl
88+
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext
8989

9090
# POSIX Thread
9191
THREADDEP=mthread_posix.c

lisp/Makefile.Linux64

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ MACHINE=x86_64
4646
DEBUG= -g
4747
WFLAGS= -Wno-old-style-definition #-Wall -Wno-unused -Wno-switch -Wno-return-type
4848

49-
CFLAGS= $(WFLAGS) -fPIC -D$(MACHINE) -DLinux -D_REENTRANT -DVERSION=\"$(VERSION)\" \
49+
CFLAGS:= $(CFLAGS) $(CPPFLAGS) $(WFLAGS) -fPIC -D$(MACHINE) -DLinux -D_REENTRANT -DVERSION=\"$(VERSION)\" \
5050
-DLIB6 $(ALIGN_FUNCTIONS) \
5151
$(DEBUG) $(CPU_OPTIMIZE) $(THREAD) -D$(XVERSION) \
5252
-DGCC $(GCC3) \
@@ -73,7 +73,7 @@ XLIB= -L/usr/X11R6/lib -lX11
7373
# specify directories where euslisp's libraries are located.
7474
EUSRPATH=-R$(ADLIBDIR)
7575
EUSLIB= -Xlinker $(EUSRPATH) -L$(ADLIBDIR)
76-
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext -leusgl
76+
GLLIB= -L$(ADLIBDIR) -lGLU -lGL -lXext
7777

7878
# POSIX Thread
7979
THREADDEP=mthread_posix.c
@@ -83,8 +83,9 @@ THREADDEP=mthread_posix.c
8383
OFLAGS= -O2
8484

8585
# link-editor's default flags ?-rdynamic
86-
SOFLAGS= -shared -build-id
87-
LDFLAGS= -rdynamic -fno-stack-protector -z execstack $(ADD_LDFLAGS)
86+
SOFLAGS:= $(LDFLAGS) -shared
87+
LD=gcc
88+
LDFLAGS:= $(LDFLAGS) -rdynamic -fno-stack-protector -z execstack $(ADD_LDFLAGS)
8889
MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/mthread_posix.o
8990
#MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/pthreads.o
9091
MAPOPTION= $(OBJDIR)/par.o

lisp/Makefile.LinuxARM

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ DEBUG= -g
6868
# If you use libc.so.5, remove -DLIB6 option.
6969
# In order to include thread library, libc.so.6 is preferrable.
7070

71-
CFLAGS=$(WFLAGS) -D$(MACHINE) -DLinux -DARM -D_REENTRANT -DVERSION=\"$(VERSION)\" \
71+
CFLAGS:= $(CFLAGS) $(CPPFLAGS) $(WFLAGS) -D$(MACHINE) -DLinux -DARM -D_REENTRANT -DVERSION=\"$(VERSION)\" \
7272
-DLIB6 $(ALIGN_FUNCTIONS) $(ADD_CFLAGS) \
7373
$(DEBUG) $(CPU_OPTIMIZE) $(THREAD) -D$(XVERSION) \
7474
-DGCC $(GCC3) \
@@ -97,8 +97,9 @@ RAWLIB=-ldl -lm -lpthread -lc
9797
XLIB= -L/usr/X11R6/lib -lX11
9898

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

103104
# POSIX Thread
104105
THREADDEP=mthread_posix.c
@@ -107,9 +108,10 @@ THREADDEP=mthread_posix.c
107108
# If you don't like optimization, comment out the next line.
108109
OFLAGS=-O2
109110

110-
# link-editor's default flags ?-rdynamic
111-
SOFLAGS= -shared -Xlinker -build-id
112-
LDFLAGS= -rdynamic -fno-stack-protector -Wl,-z,execstack $(ADD_LDFLAGS)
111+
# link-editor's default flags ?-rdynamic
112+
SOFLAGS:= $(LDFLAGS) -shared -Xlinker -build-id
113+
LD=gcc
114+
LDFLAGS:= $(LDFLAGS) -rdynamic -fno-stack-protector -Wl,-z,execstack $(ADD_LDFLAGS)
113115
MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/mthread_posix.o
114116
#MTCOBJECTS= $(OBJDIR)/mthread.o $(OBJDIR)/pthreads.o
115117
MAPOPTION=$(OBJDIR)/par.o

lisp/Makefile.generic2

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -199,7 +199,7 @@ $(ADLIBDIR)/$(LIBEUSGEO): $(GEOOBJECTS) $(GEOCOBJECTS) \
199199
$(IMGCOBJECTS) $(IMGOBJECTS))
200200
$(ADLIBDIR)/$(LIBEUSGL): $(GLCOBJECTS) $(GLOBJECTS)
201201
( $(LD) $(SOFLAGS) -o $(ADLIBDIR)/$(LIBEUSGL) \
202-
$(GLCOBJECTS) $(GLOBJECTS))
202+
$(OBJDIR)/oglforeign.c.o $(OBJDIR)/eglfunc.o $(GLOBJECTS))
203203

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

240240
$(BINDIR)/eusx: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \
@@ -246,7 +246,7 @@ $(BINDIR)/eusx: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \
246246
$(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) \
247247
$(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \
248248
$(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \
249-
$(EUSLIB) $(EUSXLIB) $(GEOLIB) $(XLIB) $(RAWLIB);)
249+
$(RAWLIB);)
250250

251251
$(BINDIR)/eus: $(BINDIR)/eusx $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \
252252
$(LCOBJECTS) $(COMPOBJECTS) \
@@ -257,7 +257,7 @@ $(BINDIR)/eus: $(BINDIR)/eusx $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS
257257
$(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \
258258
$(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \
259259
$(MAPOPTION) \
260-
$(EUSLIB) $(EUSXLIB) $(GEOLIB) $(XLIB) $(RAWLIB) \
260+
$(XLIB) $(RAWLIB) \
261261
>$(ADLIBDIR)/eusmap ; \
262262
cd $(BINDIR); rm -f euscomp eusx; \
263263
ln -sf eus euscomp; ln -sf eus eusx; )
@@ -278,7 +278,7 @@ $(BINDIR)/eusgl: $(NOKOBJECTS) $(KOBJECTS) $(KSOBJECTS) $(LOBJECTS) \
278278
$(LOBJECTS) $(LCOBJECTS) $(COMPOBJECTS) \
279279
$(MTCOBJECTS) $(RGCOBJECTS) $(MTOBJECTS) \
280280
$(MAPOPTION) \
281-
$(EUSLIB) $(EUSXLIB) $(GEOLIB) $(GLLIB) $(XLIB) $(RAWLIB)\
281+
$(OBJDIR)/util.o $(GLLIB) $(XLIB) $(RAWLIB) \
282282
>$(ADLIBDIR)/eusmap ;)
283283

284284
$(BINDIR)/raweus.so: $(NOKOBJECTS) $(KOBJECTS) $(LOBJECTS) \
@@ -313,7 +313,7 @@ $(GLCOBJECTS):
313313
$(CC) -c -o $@ $(CFLAGS) $(OFLAGS) $(GLINCLUDE) $(@F:.o=.c))
314314
$(GCCLS): MKDIR
315315
(cd $(TOOLDIR); \
316-
$(CC) -o $(BINDIR)/gccls gccls.c ;\
316+
$(CC) $(LDFLAGS) -o $(BINDIR)/gccls $(CFLAGS) gccls.c ;\
317317
cd $(EUSDIR) )
318318
$(LCOBJECTS): $(GCCLS)
319319
(cd $(LDIR); $(BINDIR)/gccls constants.l; \
@@ -336,7 +336,7 @@ $(XOBJECTS) $(XTKOBJECTS): $(OBJDIR)/compile_xwindow.log
336336
$(OBJDIR)/compile_xwindow.log: $(BINDIR)/eusg $(patsubst $(OBJDIR)/%.o,$(XWINDOWDIR)/%.l,$(XOBJECTS)) $(patsubst $(OBJDIR)/%.o,$(XWINDOWDIR)/%.l,$(XTKOBJECTS))
337337
(cd $(XWINDOWDIR); $(BINDIR)/euscomp <../$(TOOLDIR)/compile_xwindow.l > $(OBJDIR)/compile_xwindow.log)
338338
$(GLOBJECTS): $(OBJDIR)/compile_gl.log
339-
$(OBJDIR)/compile_gl.log: $(BINDIR)/eusx $(patsubst $(OBJDIR)/%.o,$(GLDIR)/%.l,$(GLOBJECTS))
339+
$(OBJDIR)/compile_gl.log: $(BINDIR)/eus $(patsubst $(OBJDIR)/%.o,$(GLDIR)/%.l,$(GLOBJECTS))
340340
($(BINDIR)/eusx <$(TOOLDIR)/compile_gl.l > $(OBJDIR)/compile_gl.log)
341341
$(XWINDOWDIR)/Xlibfuncs.o: $(XWINDOWDIR)/Xlibfuncs.c
342342
(cd $(XWINDOWDIR) ; \

0 commit comments

Comments
 (0)