octave-maintainers
[Top][All Lists]
Advanced

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

lt-octave and libtool run at first Octave invocation (was Re: Strange Pe


From: Daniel J Sebald
Subject: lt-octave and libtool run at first Octave invocation (was Re: Strange Permission denied error, JIT related?)
Date: Sun, 26 Aug 2012 04:18:30 -0500
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.24) Gecko/20111108 Fedora/3.1.16-1.fc14 Thunderbird/3.1.16

On 08/26/2012 03:39 AM, Max Brister wrote:
On Sun, Aug 26, 2012 at 2:01 AM, Daniel J Sebald<address@hidden>  wrote:
Max,

I just started seeing a strange error from the most recent code.  I compiled
as root, then run octave from a user account and get a permission denied
error.  I ran twice and got this:

[sebald ~]$ /usr/local/src/octave/octave/build-nogui/run-octave
/usr/bin/ld: cannot open output file
/usr/local/src/octave/octave/build-nogui/src/.libs/19012-lt-octave:
Permission denied
collect2: ld returned 1 exit statusn[sebald ~]$
/usr/local/src/octave/octave/build-nogui/run-octave
/usr/bin/ld: cannot open output file
/usr/local/src/octave/octave/build-nogui/src/.libs/19205-lt-octave:
Permission denied
collect2: ld returned 1 exit statusn[sebald ~]$

Notice that the error message looks to be missing a backslash.  It says
"statusn" and then the command line begins.  I think that is supposed to be
"status\n".

Notice that the library that Octave is looking for changed between attempts.
In one case it is 19012-lt-octave, in the other it is 19205-lt-octave.
Neither of these files are present in src/.libs.  All I see in that
directory is "octave" and "octave-cli".  The two different file names make
me think JIT.

Now here's the strange part.  I launch ./run-octave from the build directory
as root and Octave runs as normal (not surprising, I suppose).  But then I
try again as a user and now Octave runs as normal (surprising?).

Dan

Dan,

I think something odd happened when you were linking. I do not see how
JIT could be directly related to this issue as JIT does not generate
any temporary files, and nothing is kept across multiple invocations
of Octave.

When I look in my src/.libs folder I see
lt-octave  octave  octave-cli

OK, sorry. I must have never run from "user" without having run from "root" first. Running octave from root (i.e., the first invocation) creates the "lt-octave" file.

I've looked at "run-octave", and not much... oh wait, I think I see it now:

OCTAVE_DEFAULT_QT_SETTINGS="$top_srcdir/gui/default-qt-settings" \
  exec $builddir/libtool --mode=execute $driver \
    "$octave_executable" --no-init-path --path="$LOADPATH" \
    --image-path="$IMAGEPATH" --doc-cache-file="$DOCFILE" \
    --texi-macros-file="$TEXIMACROSFILE" --info-file="$INFOFILE" "$@"

I did a simple grep:

[sebald octave]$ grep OCTAVE_DEFAULT_QT_SETTINGS */*/*
libgui/src/resource-manager.cc: std::string dsf = octave_env::getenv ("OCTAVE_DEFAULT_QT_SETTINGS");

IF I'm understanding this correctly, the first time Octave is launched, it looks for OCTAVE_DEFAULT_QT_SETTINGS and runs that script? That means the "lt-octave" comes from the "libtool" invocation at first launch.

A couple things about this:

1) I indicated the option "--disable-gui", so I would think OCTAVE_DEFAULT_QT_SETTINGS wouldn't have any bearing.

2) If my interpretation is correct, I think neither will this run for someone who compiles and then installs to a system directory. To do that install would require being root (or if it asks for a root password, then enter the root password). So once it is installed at the system level and a user tries to run, the same thing will happen as I described.

I'm not sure what the intended behavior is. Can someone please clear up the sequence of events.

Thanks,

Dan


reply via email to

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