perl on pc 104

R

Ron Eggler

Hi,

I need to get perl5 on our little pc104 (with goede) system in order to get
ssh-keygen( openSSH) - which depends on openSSL which depends on perl5 -
running.
When I'm trying to compile (configure) it, I get this messages:
[shell]
I used the command:

cc -o
try -O2 -fno-strict-aliasing -pipe -I/usr/local/include -L/usr/local/lib
try.c -lnsl -ldb -ldl -lm -lcrypt -lutil -lc
./try

and I got the following output:

/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined reference
to `pthread_condattr_setpshared'
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined reference
to `pthread_mutexattr_destroy'
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined reference
to `pthread_mutexattr_setpshared'
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined reference
to `pthread_mutexattr_init'
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined reference
to `pthread_mutex_trylock'
collect2: ld returned 1 exit status
I can't compile the test program.
(The supplied flags or libraries might be incorrect.)

You have a BIG problem. Shall I abort Configure [y] y
Ok. Stopping Configure.
[root@NEMS perl-5.10.0]# find / -name "libdb.so"
/usr/lib/libdb.so
[/shell]

Any ideawhat I would be doing wrongly and what that exactly is, as you can
see, i made a find on the bottom and i do have the libdb.so available
in /usr/lib.

Thanks for any help!
 
J

John Bokma

[..]
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined
reference to `pthread_mutexattr_setpshared'
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined
reference to `pthread_mutexattr_init'
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined
[..]

Any ideawhat I would be doing wrongly and what that exactly is, as you
can see, i made a find on the bottom and i do have the libdb.so
available in /usr/lib.

But do you have pthread.so (I assume it's called like that).

(Unless I am not entirely awake and read the messages wrong...)
 
B

Ben Morrow

Quoth Ron Eggler said:
I need to get perl5 on our little pc104 (with goede) system in order to get
ssh-keygen( openSSH) - which depends on openSSL which depends on perl5 -
running.
When I'm trying to compile (configure) it, I get this messages:
[shell]
I used the command:

cc -o
try -O2 -fno-strict-aliasing -pipe -I/usr/local/include -L/usr/local/lib
try.c -lnsl -ldb -ldl -lm -lcrypt -lutil -lc
./try

and I got the following output:

/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined reference
to `pthread_condattr_setpshared'
Any ideawhat I would be doing wrongly and what that exactly is, as you can
see, i made a find on the bottom and i do have the libdb.so available
in /usr/lib.

The problem is not libdb.so, it's that libdb.so requires the pthread
functions, which aren't getting loaded. Do you have a version of
libdb.so which doesn't require threads, and can you persuade Configure
to use it?

Alternatively, can you Configure perl with -Duseithreads? I wouldn't
normally recommend this on a Unix machine (perl threads are practically
useless when you have fork(2)), but it may be an easy way to pull the
thread libraries in.

Otherwise, you may have more luck asking (e-mail address removed): they
are the people who maintain perl, and they will certainly be interested
in situations where perl won't configure.

Ben
 
R

Ron Eggler

Ben said:
Quoth Ron Eggler said:
I need to get perl5 on our little pc104 (with goede) system in order to
get ssh-keygen( openSSH) - which depends on openSSL which depends on
perl5 - running.
When I'm trying to compile (configure) it, I get this messages:
[shell]
I used the command:

cc -o
try -O2 -fno-strict-aliasing -pipe -I/usr/local/include -L/usr/local/lib
try.c -lnsl -ldb -ldl -lm -lcrypt -lutil -lc
./try

and I got the following output:

/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined
reference to `pthread_condattr_setpshared'
Any ideawhat I would be doing wrongly and what that exactly is, as you
can see, i made a find on the bottom and i do have the libdb.so available
in /usr/lib.

The problem is not libdb.so, it's that libdb.so requires the pthread
functions, which aren't getting loaded. Do you have a version of
libdb.so which doesn't require threads, and can you persuade Configure
to use it?

Alternatively, can you Configure perl with -Duseithreads? I wouldn't
normally recommend this on a Unix machine (perl threads are practically
useless when you have fork(2)), but it may be an easy way to pull the
thread libraries in.

Otherwise, you may have more luck asking (e-mail address removed): they
are the people who maintain perl, and they will certainly be interested
in situations where perl won't configure.

Ben

Alright, ./Configure -Duseithreads went well withou doing anything else to
pthread libraries.
BUT I get this on make test or make install:
[shell]
NEMS perl-5.10.0 # make test
make: *** No rule to make target `/usr/include/bits/errno_values.h', needed
by `miniperlmain.o'. Stop.
NEMS perl-5.10.0 # make install
make install.perl install.man STRIPFLAGS= DESTDIR=""
make[1]: Entering directory `/uc/home/ron/software/perl-5.10.0'
make[1]: *** No rule to make target `/usr/include/bits/errno_values.h',
needed by `miniperlmain.o'. Stop.
make[1]: Leaving directory `/uc/home/ron/software/perl-5.10.0'
make: *** [install] Error 2
[/shell]
Not really sure wht this means and if this relates to the pthread problem i
had before.
 
R

Ron Eggler

John said:
[..]
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined
reference to `pthread_mutexattr_setpshared'
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined
reference to `pthread_mutexattr_init'
/usr/lib/gcc/i586-linux-uclibc/3.4.4/../../../libdb.so: undefined
[..]

Any ideawhat I would be doing wrongly and what that exactly is, as you
can see, i made a find on the bottom and i do have the libdb.so
available in /usr/lib.

But do you have pthread.so (I assume it's called like that).

(Unless I am not entirely awake and read the messages wrong...)

I'm not sure what i would need to install to get this problem with pthread
resolved... :eek:
 
J

John Bokma

[..]
make: *** No rule to make target `/usr/include/bits/errno_values.h',
needed by `miniperlmain.o'. Stop.

[..]

Sounds to me like errno_values.h is missing.
 
B

Ben Morrow

Quoth Ron Eggler said:
Alright, ./Configure -Duseithreads went well withou doing anything else to
pthread libraries.
BUT I get this on make test or make install:
[shell]
NEMS perl-5.10.0 # make test
make: *** No rule to make target `/usr/include/bits/errno_values.h', needed
by `miniperlmain.o'. Stop.

Do you have a /usr/include/bits/errno_values.h? If not, you need to find
one from somewhere (is there a libc headers package you can install, or
is bits/errno_values.h part of the kernel headers and you don't have
them installed?), or you need to work out why miniperlmain.c thinks it
needs it when it doesn't. IIRC bits/errno_values.h is a glibc-ism, and
is included by errno.h; you mentioned uclibc at some point, so perhaps
you are ending up with the wrong errno.h?

If you do have one, and make is just being silly, you could try removing
the

miniperlmain$(OBJ_EXT): /usr/include/bits/errno_values.h

line from makefile (note: *not* Makefile) and see if that changes the
error message. If it does you will probably need to remove all the
dependancies on headers in /usr/include before it will build.
NEMS perl-5.10.0 # make install

Since you've been having problems configuring, you *really* want to run
make test before you make install.
Not really sure wht this means and if this relates to the pthread problem i
had before.

No, it probably doesn't.

Ben
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,019
Latest member
RoxannaSta

Latest Threads

Top