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 gf, 12 years ago

Get working glibc. pthread_attr_setstacksize is merged in glibc 2.1.

comment:2 by gf, 12 years ago

Or if you insist on using broken glibc compile with
make EXTRA_FLAGS=-Dpthread_attr_setstacksize=

comment:3 by xfiles_2007, 12 years ago

how do i get working glibc ?? from where...

i tried the extra flags... same error..

thanks

comment:4 by gf, 12 years ago

Resolution: worksforme
Status: newclosed

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 Admin, 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 xfiles_2007, 12 years ago

above doesnt work...
and i have the latest tuxbox tool chain from the streamboard site.....

:(

comment:7 by gf, 12 years ago

What is the toolchain and the command you use for building?

Last edited 12 years ago by gf (previous) (diff)

comment:8 by slippery49, 12 years ago

Resolution: worksforme
Status: closedreopened

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 xfiles_2007, 12 years ago

same as above..

cmake -DWEBIF=1 -DCMAKE_TOOLCHAIN_FILE=../toolchains/toolchain-mipsel-tuxbox.cmake ..
make

comment:10 by gf, 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 gf, 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 gf, 12 years ago

Keywords: pthread_attr_setstacksize mips broken glibc added
Resolution: worksforme
Status: reopenedclosed

Workaround is added in r6926.

Note: See TracTickets for help on using tickets.