summaryrefslogtreecommitdiff
authorzecke <zecke>2003-12-20 13:06:29 (UTC)
committer zecke <zecke>2003-12-20 13:06:29 (UTC)
commitd9ffcee06ec97f4a9e00ff0a9071d7a58e5075a1 (patch) (side-by-side diff)
tree1d808cf09131926e6ab6a00e75d9b92182c49365
parentafabf4e4cb1211dd17e0ba0ff77133335d4735b9 (diff)
downloadopie-d9ffcee06ec97f4a9e00ff0a9071d7a58e5075a1.zip
opie-d9ffcee06ec97f4a9e00ff0a9071d7a58e5075a1.tar.gz
opie-d9ffcee06ec97f4a9e00ff0a9071d7a58e5075a1.tar.bz2
Do not use LD_BIND_NOW for now.
I hope ljp gets some numbers for that soon...
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--core/launcher/applauncher.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/core/launcher/applauncher.cpp b/core/launcher/applauncher.cpp
index 0ac043b..0db99dd 100644
--- a/core/launcher/applauncher.cpp
+++ b/core/launcher/applauncher.cpp
@@ -635,49 +635,56 @@ int AppLauncher::pidForName( const QString &appName )
pid = it.key();
break;
}
}
return pid;
}
void AppLauncher::createQuickLauncher()
{
static bool disabled = FALSE;
if (disabled)
return;
qlReady = FALSE;
qlPid = ::vfork();
if ( !qlPid ) {
char **args = new char *[2];
args[0] = "quicklauncher";
args[1] = 0;
for ( int fd = 3; fd < 100; fd++ )
::close( fd );
::setpgid( ::getpid(), ::getppid() );
// Try bindir first, so that foo/bar works too
- setenv( "LD_BIND_NOW", "1", 1 );
+ /*
+ * LD_BIND_NOW will change the behaviour of ld.so and dlopen
+ * RTLD_LAZY will be made RTLD_NOW which leads to problem
+ * with miscompiled libraries... if LD_BIND_NOW is set.. there
+ * is no way back.. We will wait for numbers from TT to see
+ * if using LD_BIND_NOW is worth it - zecke
+ */
+// setenv( "LD_BIND_NOW", "1", 1 );
::execv( QPEApplication::qpeDir()+"bin/quicklauncher", args );
::execvp( "quicklauncher", args );
delete []args;
disabled = TRUE;
_exit( -1 );
} else if ( qlPid == -1 ) {
qlPid = 0;
} else {
if ( getuid() == 0 )
setpriority( PRIO_PROCESS, qlPid, 19 );
}
}
// Used only by Win32
void AppLauncher::processExited()
{
#ifdef Q_OS_WIN32
qDebug("AppLauncher::processExited()");
bool found = FALSE;
QProcess *proc = (QProcess *) sender();
if (!proc){
qDebug("Interanl error NULL proc");
return;
}