Mailinglist Archive: opensuse-buildservice (151 mails)

< Previous Next >
Re: [opensuse-buildservice] linking with X11 in OBS
On Mon, Mar 10, 2014 at 01:25:48PM +0100, Roger Oberholtzer wrote:
Hi,

I am trying to compile a Tcl/Tk extension that uses X11. I can successfully
compile it on my local machine (direct - not in a local OBS) and it compiles
just fine. I use the same commands I see in the OBS log. Oddly, when the
application is being linked in OBS, it complains about some missing functions
that I really think should be resolved. Especially since the same command
works on my system.

The order on the linker line is important, libraries need to come rightmost.

Ciao, Marcus

For example:


gcc -DPACKAGE_NAME=\"TkXext\" -DPACKAGE_TARNAME=\"tkxext\" -
DPACKAGE_VERSION=\"3.6.13\" -DPACKAGE_STRING=\"TkXext\ 3.6.13\" -
DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DBUILD_TkXext=/\*\*/ -
DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -
DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -
DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DHAVE_SYS_PARAM_H=1 -
DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DTCL_THREADS=1 -
DMODULE_SCOPE=extern\ __attribute__\(\(__visibility__\(\"hidden\"\)\)\) -
DHAVE_NO_SEH=1 -DEXCEPTION_DISPOSITION=int -DHAVE_CAST_TO_UNION=1 -
D_LARGEFILE64_SOURCE=1 -DTCL_WIDE_INT_TYPE=long\ long -DHAVE_STRUCT_STAT64=1 -
DHAVE_OPEN64=1 -DHAVE_LSEEK64=1 -DHAVE_TYPE_OFF64_T=1 -DUSE_TCL_STUBS=1 -
DUSE_TK_STUBS=1 -DPIC -I"/usr/include" -I"/usr/include" -pipe -O2 -fomit-
frame-pointer -DNDEBUG -Wall -fPIC -lX11 -L/usr/lib -ltclstub8.5 -L/usr/lib
-ltkstub8.5 -lXext -lXtst `echo ./unix/TkXext.record.c` -o txerecord

[ 74s] ./unix/TkXext.record.c: In function 'main':
[ 74s] ./unix/TkXext.record.c:131:9: warning: variable 'w' set but not used
[-Wunused-but-set-variable]
[ 74s] /tmp/ccofzMaU.o: In function `.L30':
[ 74s] TkXext.record.c:(.text+0x26a): undefined reference to
`XkbKeycodeToKeysym'
[ 74s] /tmp/ccofzMaU.o: In function `.L27':
[ 74s] TkXext.record.c:(.text+0x289): undefined reference to
`XRecordFreeData'
[ 74s] /tmp/ccofzMaU.o: In function `main':
[ 74s] TkXext.record.c:(.text.startup+0x3a): undefined reference to
`XOpenDisplay'
[ 74s] TkXext.record.c:(.text.startup+0x54): undefined reference to
`XSynchronize'
[ 74s] TkXext.record.c:(.text.startup+0x6c): undefined reference to
`XRecordQueryVersion'
[ 74s] TkXext.record.c:(.text.startup+0x79): undefined reference to
`XRecordAllocRange'
[ 74s] TkXext.record.c:(.text.startup+0xbd): undefined reference to
`XRecordCreateContext'
[ 74s] TkXext.record.c:(.text.startup+0xcd): undefined reference to
`XOpenDisplay'
[ 74s] TkXext.record.c:(.text.startup+0xdb): undefined reference to `XFlush'
[ 74s] TkXext.record.c:(.text.startup+0xe3): undefined reference to `XFlush'
[ 74s] TkXext.record.c:(.text.startup+0x101): undefined reference to
`XRecordEnableContext'

Shouldn't XOpenDisplay and the others have been resolved by -lX11

My spec file says:

BuildRequires: xorg-x11-devel tcl tcl-devel tk-devel libXext-devel

which I would think would cover it. I am not getting a message that a library
cannot be found.

It you are curious, the extension is:

https://build.opensuse.org/package/show/home:rogeroberholtzer/TkXext

--
Yours sincerely,

Roger Oberholtzer

Ramböll RST / Systems

Office: Int +46 10-615 60 20
Mobile: Int +46 70-815 1696
roger.oberholtzer@xxxxxxxxxx
________________________________________

Ramböll Sverige AB
Krukmakargatan 21
P.O. Box 17009
SE-104 62 Stockholm, Sweden
www.rambollrst.se
--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

--
To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@xxxxxxxxxxxx
To contact the owner, e-mail: opensuse-buildservice+owner@xxxxxxxxxxxx

< Previous Next >
Follow Ups
References