gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GCL on Slackware - permission-related problem?


From: Zbigniew
Subject: GCL on Slackware - permission-related problem?
Date: Sun, 13 Dec 2020 01:38:39 +0100
User-agent: Mutt/1.6.1 (2016-04-27)

Hello,

I'm trying to compile GCL on Slackware64 14.2. There's an issue I'm not sure
whether I properly resolved it.

At first I ran "configure" script like this:

 CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" LIBS="-ltinfo" ./configure 
CFLAGS='-std=gnu90' --prefix=/usr --enable-tkconfig=/usr/lib 
--enable-tclconfig=/usr/lib

Then "make" - compilation went fine and GCL seemed to be working. But then
I noticed "make" didn't link "readline" library, since GCL's "configure"
tries it "alone", while Slackware requires "readline" along with "tinfo"
(or "termcap"). So I modified the invocation, running "configure" like this:

 CFLAGS="$SLKCFLAGS" CXXFLAGS="$SLKCFLAGS" LIBS="-ltinfo" ./configure 
CFLAGS='-std=gnu90' --prefix=/usr --enable-tkconfig=/usr/lib 
--enable-tclconfig=/usr/lib

Compilation went fine again, and "ldd" shows that "readline" indeed has been
used (I have "command history" available, I can use cursor keys in command
line etc.). But there's strange issue not present during previous compilation,
without "readline": when I try to run "gcl" as non-root user it just segfaults.
"Strace" reports:

#v+
[..]
lseek(255, -63, SEEK_CUR)               = 241
execve("/usr/lib/gcl-2.6.12/unixport/saved_gcl",
["/usr/lib/gcl-2.6.12/unixport/sav"..., "-dir",
 "/usr/lib/gcl-2.6.12/unixport/", "-libdir",
 "/usr/lib/gcl-2.6.12/", "-eval",
 "(setq si::*allow-gzipped-file* t"..., "-eval",
 "(setq si::*tk-library* \"/usr/lib"...], [/* 64 vars */]) = -1 EPERM 
(Operation not permitted)

--- SIGSEGV {si_signo=SIGSEGV, si_code=SI_KERNEL, si_addr=0} ---
+++ killed by SIGSEGV +++
#v-

A quick test showed that any attempt to run the binary
/usr/lib/gcl-2.6.12/unixport/saved_gcl  as non-privileged user results in
segfault.

I made it work by "chmod u+s /usr/lib/gcl-2.6.12/unixport/saved_gcl" - but
is it proper solution? It wasn't necessary before, when "readline" (along
with "tinfo") wasn't used by that binary.

Any suggestions?

Slackware64 14.2 with  GCC 5.5  glibc 2.23  readline 6.3  GCL 2.6.12
-- 
regards,
Zbigniew



reply via email to

[Prev in Thread] Current Thread [Next in Thread]