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

Re: [perl #57458] Threads support in FreeBSD 7.0

Thread Previous | Thread Next
From:
Reini Urban
Date:
July 31, 2008 14:29
Subject:
Re: [perl #57458] Threads support in FreeBSD 7.0
Message ID:
48922E92.7060903@x-ray.at
Kidney Bingos (via RT) schrieb:
> # New Ticket Created by  Kidney Bingos 
> # Please include the string:  [perl #57458]
> # in the subject line of all future correspondence about this issue. 
> # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=57458 >
> 
> 
> Hi,
> 
> 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
> 
>   Dresden.pm<--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 Policy.sh file or a Policy.sh 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/freebsd.sh: /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)
> [/usr/local]  
> 
> 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.

$ Configure -de -A append:ld=-lpthread

  -A : manipulate symbol after the platform specific hints have been 
applied:
         -A append:symbol=value   append value to symbol
         -A symbol=value          like append:, but with a separating space
         -A define:symbol=value   define symbol to have value
         -A clear:symbol          define symbol to be ''
         -A define:symbol         define symbol to be 'define'
         -A eval:symbol=value     define symbol to be eval of value
         -A prepend:symbol=value  prepend value to symbol
         -A undef:symbol          define symbol to be 'undef'
         -A undef:symbol=         define symbol to be ''
       e.g.:  -A prepend:libswanted='cl pthread '
              -A ccflags=-DSOME_MACRO

I'm also tyring it out right now.
I was also pissed that freebsd 7 only has 5.8.8

-- 
Reini Urban
http://phpwiki.org/  http://murbreak.at/

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About