Opened 12 years ago
Closed 12 years ago
#2564 closed defect (worksforme)
#ifndef TUXBOX needs to be added to oscam-garbage ????
Reported by: | xfiles_2007 | Owned by: | |
---|---|---|---|
Priority: | major | Component: | General |
Severity: | medium | Keywords: | pthread_attr_setstacksize, mips, broken glibc |
Cc: | Sensitive: | no |
Description
Revision
6885
Issue Description
#ifndef TUXBOX needs to be added to oscam-garbage ??????
Error is thrown on start up :
oscam: relocation error: oscam: symbol pthread_attr_setstacksize, version GLIBC_
2.3.3 not defined in file libpthread.so.0 with link time reference
When the issue occurs
startup
How the issue is reproducable
start oscam on dm8000
Change History (12)
comment:1 by , 12 years ago
comment:2 by , 12 years ago
Or if you insist on using broken glibc compile with
make EXTRA_FLAGS=-Dpthread_attr_setstacksize=
comment:3 by , 12 years ago
how do i get working glibc ?? from where...
i tried the extra flags... same error..
thanks
comment:4 by , 12 years ago
Resolution: | → worksforme |
---|---|
Status: | new → closed |
I don't know where to get updated glibc. Probably from where you got your stb image.
To compile without pthread_attr_setstacksize
, use this:
make EXTRA_FLAGS="'-Dpthread_attr_setstacksize(a,b)=/* a b */'" ...other_params...
you'll get oscam binary that to not contain any calls to pthread_attr_setstacksize.
comment:5 by , 12 years ago
The problem is probably not that the glibc is too old to have this function but that there were some kind of interface changes inside glibc which break compatibility. Thus, the real reason is that the toolchain is not correctly matching your installed system.
Upgrading glibc on a receiver is almost never possible. To upgrade, you need to simply flash a new image. Another option would be to get the correcto toolchain (perhaps ask the one which build the image).
comment:6 by , 12 years ago
above doesnt work...
and i have the latest tuxbox tool chain from the streamboard site.....
:(
comment:8 by , 12 years ago
Resolution: | worksforme |
---|---|
Status: | closed → reopened |
I am experienceing same issue,
builds tried 6864, 6886, 6915
Basic toolchain
cd build_mips
make clean
cmake -DWEBIF=1 -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-mips-tuxbox.cmake ..
Reports error on startup
comment:9 by , 12 years ago
same as above..
cmake -DWEBIF=1 -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-mipsel-tuxbox.cmake ..
make
comment:10 by , 12 years ago
Ok, let me try to explain again, because there is still some confusion. You guys do not have problems with the build. You have problems with your libraries installed on your STBs.
So at least you need to say: what image are you using, from where did you get it (so I can get it for example). The only thing that needs fixing are the broken glibc that somebody put on this image. I already gave you solution how to compile your OSCAM without the calls to pthread_set_stacksize(), use them.
If somebody knows how to add the define for cmake, say it, but the build system works just fine without cmake, so invest 10 seconds, read what is written and try to use it.
I have compiled binary for mips using my instructions from above, and the binary do not contain calls to pthread_attr_stacksize(). So ley me repeat again:
make EXTRA_FLAGS="'-Dpthread_attr_setstacksize(a,b)=/* a b */'" CROSS=mipsel-linux-uclibc-
gf@gf:~/git/oscam$ make EXTRA_FLAGS="'-Dpthread_attr_setstacksize(a,b)=/* a b */'" CROSS=mipsel-linux-uclibc- +------------------------------------------------------------------------------- | OSCam ver: 1.20-unstable_svn rev: 6921 target: mipsel-linux-uclibc | Tools: | CROSS = mipsel-linux-uclibc- | CC = mipsel-linux-uclibc-gcc | AR = mipsel-linux-uclibc-ar | STRIP = mipsel-linux-uclibc-strip | RANLIB = mipsel-linux-uclibc-ranlib | Settings: | CONF_DIR = /usr/local/etc | CC_OPTS = -O2 | CC_WARN = -W -Wall -fno-strict-aliasing -Wredundant-decls -Wstrict-prototypes -Wold-style-definition | CFLAGS = '-Dpthread_attr_setstacksize(a,b)=/* a b */' | LDFLAGS = '-Dpthread_attr_setstacksize(a,b)=/* a b */' | LIBS = -lpthread -lm | Config: | Addons : WEBIF HAVE_DVBAPI IRDETO_GUESSING CS_ANTICASC WITH_DEBUG MODULE_MONITOR WITH_LB CS_CACHEEX | Protocols: CAMD35 CAMD35_TCP NEWCAMD CCCAM GBOX RADEGAST SERIAL CONSTCW PANDORA | Readers : WITH_CARDREADER NAGRA IRDETO CONAX CRYPTOWORKS SECA VIACCESS VIDEOGUARD DRE TONGFANG BULCRYPT | Compiler : mipsel-linux-uclibc-gcc (GCC) 3.4.6 | Binary : Distribution/oscam-1.20-unstable_svn6921-mipsel-linux-uclibc +------------------------------------------------------------------------------- ..normal build output... LINK Distribution/oscam-1.20-unstable_svn6921-mipsel-linux-uclibc STRIP Distribution/oscam-1.20-unstable_svn6921-mipsel-linux-uclibc gf@gf:~/git/oscam$ strings Distribution/oscam-1.20-unstable_svn6921-mipsel-linux-uclibc | grep -i pthread_attr_set gf@gf:~/git/oscam$ strings Distribution/oscam-1.20-unstable_svn6921-mipsel-linux-uclibc | grep -i pthread_attr pthread_attr_init pthread_attr_destroy
See, no pthread_attr_setstacksize.
comment:11 by , 12 years ago
Add this line to your toolchain-mipsel-tuxbox.cmake
file:
add_definitions("'-Dpthread_attr_setstacksize(a,b)=/* a b */'")
For reference here how toolchain-mipsel-tuxbox.cmake
should look for you:
set (OSCAM_SYSTEM_NAME Tuxbox) set (CMAKE_SYSTEM_NAME Linux) set (CMAKE_C_COMPILER mipsel-unknown-linux-gnu-gcc) set (CMAKE_SYSTEM_PROCESSOR mips) add_definitions("'-Dpthread_attr_setstacksize(a,b)=/* a b */'")
using this template I have built OSCAM and the binary do not contain calls to pthread_attr_setstacksize, so can we now put this to rest, please?
comment:12 by , 12 years ago
Keywords: | pthread_attr_setstacksize mips broken glibc added |
---|---|
Resolution: | → worksforme |
Status: | reopened → closed |
Workaround is added in r6926.
Get working glibc. pthread_attr_setstacksize is merged in glibc 2.1.