GLBasic forum

Main forum => Bug Reports => Topic started by: MrTAToad on 2011-Sep-30

Title: Does a Linux executable set RPATH ?
Post by: MrTAToad on 2011-Sep-30
It is an error I get from Lintian (when I try to create a valid package file), which states :

QuoteThe binary or shared library sets RPATH. This overrides the normal library search path, possibly interfering with local policy and causing problems for multilib, among other issues.

The only time a binary or shared library in a Debian package should set RPATH is if it is linked to private shared libraries in the same package. In that case, place those private shared libraries in /usr/lib/package. Libraries used by binaries in other packages should be placed in /lib or /usr/lib as appropriate, with a proper SONAME, in which case RPATH is unnecessary.

To fix this problem, look for link lines like:
        gcc test.o -o test -Wl,--rpath,/usr/local/lib
or
        gcc test.o -o test -R/usr/local/lib
and remove the -Wl,--rpath or -R argument. You can also use the chrpath utility to remove the RPATH.

Refer to http://wiki.debian.org/RpathIssue for details.

Severity: serious, Certainty: possible

Check: binaries, Type: binary, udeb
Title: Re: Does a Linux executable set RPATH ?
Post by: Kitty Hello on 2011-Sep-30
in compiler/platform/platform.ini
[Linux]

replace the "-rpath" with "-rpath-link"

Code (glbasic) Select

Gcc="%GLBASIC%Compiler\platform\Linux\Bin\g++.exe" -static-libgcc -pipe -O3 -w -Wl,--allow-shlib-undefined,-rpath-link,"%CYG_GLBASIC%Compiler/platform/Linux/Lib" -B"%CYG_GLBASIC%Compiler/platform/Linux/Bin"  -L"%CYG_GLBASIC%Compiler/platform/Linux/Lib" -I"%CYG_GLBASIC%Compiler/platform/Include" -I"%CYG_PROJECT_PATH%" -L"%CYG_PROJECT_PATH%" -DLINUX -DUNIX -DNDEBUG -DWANT_SDL -DHAVE_OPENGL %SOURCEFILES% -lGLBasicLinux -lpng-gf -lGL -lSDL_mixer -lSDL

GccConsole="%GLBASIC%Compiler\platform\Linux\Bin\g++.exe" -pipe -O3 -w -Wl,--allow-shlib-undefined,-rpath-link,"%CYG_GLBASIC%Compiler/platform/Linux/Lib" -B"%CYG_GLBASIC%Compiler/platform/Linux/Bin" -L"%CYG_GLBASIC%Compiler/platform/Linux/Lib" -I"%CYG_GLBASIC%Compiler/platform/Include" -I"%CYG_PROJECT_PATH%" -L"%CYG_PROJECT_PATH%" -DLINUX -DUNIX -DNDEBUG -DGLB_CONSOLE %SOURCEFILES% -lGLBasicLinux-console -ldl -lc -lpthread


I fixed that for the next release.