develooper Front page | perl.perl5.porters | Postings from July 2008

[perl #57458] Threads support in FreeBSD 7.0

Thread Next
Kidney Bingos
July 31, 2008 08:00
[perl #57458] Threads support in FreeBSD 7.0
Message ID:
# New Ticket Created by  Kidney Bingos 
# Please include the string:  [perl #57458]
# in the subject line of all future correspondence about this issue. 
# <URL: >


Threads support appears to be broken with FreeBSD 7.0 on perl-current, perl-5.8.x and perl-5.10.x

The output from ./Configure on blead for instance:

./Configure -de -Dusethreads -Duse64bitint -Dusedevel

Beginning of configuration questions for perl5.
Checking echo to see how to suppress newlines...
...using -n.
The star should be here-->*
First let's make sure your kit is complete.  Checking...
Looks good...
Would you like to see the instructions? [n]  
Locating common programs...
awk is in /usr/bin/awk.
cat is in /bin/cat.
chmod is in /bin/chmod.
comm is in /usr/bin/comm.
cp is in /bin/cp.
echo is in /bin/echo.
expr is in /bin/expr.
grep is in /usr/bin/grep.
ls is in /bin/ls.
mkdir is in /bin/mkdir.
rm is in /bin/rm.
sed is in /usr/bin/sed.
sort is in /usr/bin/sort.
touch is in /usr/bin/touch.
tr is in /usr/bin/tr.
uniq is in /usr/bin/uniq.
Don't worry if any of the following aren't found...
ar is in /usr/bin/ar.
I don't see bison out there, offhand.
byacc is in /usr/bin/byacc.
cpp is in /usr/bin/cpp.
csh is in /bin/csh.
date is in /bin/date.
egrep is in /usr/bin/egrep.
gmake is in /usr/local/bin/gmake.
gzip is in /usr/bin/gzip.
less is in /usr/bin/less.
ln is in /bin/ln.
make is in /usr/bin/make.
more is in /usr/bin/more.
nm is in /usr/bin/nm.
nroff is in /usr/bin/nroff.
I don't see pg out there, either.
test is in /bin/test.
uname is in /usr/bin/uname.
I don't see zip out there, either.
Using the test built into your sh.
Checking compatibility between /bin/echo and builtin echo (if any)...
They are compatible.  In fact, they may be identical.
The following message is sponsored by<--The stars should be here.

Dear Perl user, system administrator or package
maintainer, the Perl community sends greetings to
you. Do you (emblematical) greet back [Y/n]? n

Symbolic links are supported.
Checking how to test for symbolic links...
You can test for symbolic links with 'test -h'.
Good, your tr supports [:lower:] and [:upper:] to convert case.
Using [:upper:] and [:lower:] to convert case.

First time through, eh?  I have some defaults handy for some systems
that need some extra help getting the Configure answers right:

3b1   		dos_djgpp   	irix_6_0   	nonstopux   	sunos_4_0   
aix   		dragonfly   	irix_6_1   	openbsd   	sunos_4_1   
aix_3   	dynix   	isc   		opus   		super-ux   
aix_4   	dynixptx   	isc_2   	os2   		svr4   
altos486   	epix   		linux   	os390   	svr5   
amigaos   	esix4   	lynxos   	os400   	ti1500   
apollo   	fps   		machten   	posix-bc   	titanos   
atheos   	freebsd   	machten_2   	powerux   	ultrix_4   
aux_3   	genix   	midnightbsd   	qnx   		umips   
beos   		gnu   		mint   		rhapsody   	unicos   
bsdos   	gnukfreebsd   	mips   		riscos   	unicosmk   
catamount   	gnuknetbsd   	mpc   		sco   		unisysdynix   
convexos   	greenhills   	mpeix   	sco_2_3_0   	utekv   
cxux   		hpux   		ncr_tower   	sco_2_3_1   	uts   
cygwin   	i386   		netbsd   	sco_2_3_2   	uwin   
darwin   	interix   	newsos4   	sco_2_3_3   	vmesa   
dcosx   	irix_4   	next_3   	sco_2_3_4   	vos   
dec_osf   	irix_5   	next_3_0   	solaris_2   
dgux   		irix_6   	next_4   	stellar   

You may give one or more space-separated answers, or "none" if appropriate.
If you have a handcrafted file or a file generated by a
previous run of Configure, you may specify it as well as or instead of
OS-specific hints.  If hints are provided for your OS, you should use them:
although Perl can probably be built without hints on many platforms, using
hints often improve performance and may enable features that Configure can't
set up on its own. If there are no hints that match your OS, specify "none";
DO NOT give a wrong version or a wrong OS.

Which of these apply, if any? [freebsd]  
./hints/ /usr/bin/objformat: not found

Some users have reported that Configure halts when testing for
the O_NONBLOCK symbol with a syntax error.  This is apparently a
sh error.  Rerunning Configure with ksh apparently fixes the
problem.  Try
	ksh Configure [your options]

Configure uses the operating system name and version to set some defaults.
The default value is probably right if the name rings a bell. Otherwise,
since spelling matters for me, either accept the default or answer "none"
to leave it blank.

Operating system name? [freebsd]  
Operating system version? [7.0-release]  

By default, perl5 will be installed in /usr/local/bin, manual pages
under /usr/local/man, etc..., i.e. with /usr/local as prefix for all
installation directories. Typically this is something like /usr/local.
If you wish to have binaries under /usr/bin but other parts of the
installation under /usr/local, that's ok: you will be prompted
separately for each of the installation directories, the prefix being
only used to set the defaults.

Installation prefix to use? (~name ok) [/usr/local]  
AFS does not seem to be running...

In some special cases, particularly when building perl5 for distribution,
it is convenient to distinguish the directory in which files should be
installed from the directory (/usr/local) in which they will
eventually reside.  For most users, these two directories are the same.

What installation prefix should I use for installing files? (~name ok)

Perl can be built to use the SOCKS proxy protocol library.  To do so,
Configure must be run with -Dusesocks.  If you use SOCKS you also need
to use the PerlIO abstraction layer, this will be implicitly selected.

If this doesn't make any sense to you, just accept the default 'n'.
Build Perl for SOCKS? [n]  

Previous version of perl5 used the standard IO mechanisms as
defined in <stdio.h>.  Versions 5.003_02 and later of perl5 allow
alternate IO mechanisms via the PerlIO abstraction layer, but the
stdio mechanism is still available if needed.  The abstraction layer
can use AT&T's sfio (if you already have sfio installed) or regular stdio.
Using PerlIO with sfio may cause problems with some extension modules.

If this doesn't make any sense to you, just accept the default 'y'.
Use the PerlIO abstraction layer? [y]  
Getting the current patchlevel...
(You have perl5 version 11 subversion 0 patch 34166.)

Perl can be built to take advantage of threads on some systems.
To do so, Configure can be run with -Dusethreads.

Note that Perl built with threading support runs slightly slower
and uses more memory than plain Perl. The current implementation
is believed to be stable, but it is fairly new, and so should be
treated with caution.

If this doesn't make any sense to you, just accept the default 'y'.
Build a threading Perl? [y]  
Your platform has some specific hints regarding threaded builds, using them...
POSIX threads should be supported by FreeBSD 7.0-release --
but your system is missing the shared libc_r.
(/sbin/ldconfig -r doesn't find any).

Consider using the latest STABLE release.

It appears that libc_r was deprecated with FreeBSD 5.x and completely removed with FreeBSD 7.0.

A look through the hints file for FreeBSD seems to suggest that -lpthread should just be added to the
libs line, but my Configure/hints foo is too weak to work out a suitable solution.

Many thanks,

Chris Williams
aka BinGOs
PGP ID 0x4658671F
Chris Williams
aka BinGOs
PGP ID 0x4658671F

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About