Hi!

I got the list of options from there: 
http://mail.perlide.org/pipermail/padre-dev/2010-June/001863.html 

But I checked a compilation with
sh Configure -des -Dusethreads -Dprefix=$HOME/soft/perl/5.18.0 
-Dinstallusrbinperl=n -Accflags='-pthread' 

This results in
[...snip...]
Build a threading Perl? [y] 
[...snip...]

--> Configure finishes it's job
--> make finishes it's job
--> Make test
-->
[...snip...]
dist/Storable/t/threads ....................................... ok
...
dist/Thread-Queue/t/01_basic .................................. ok
dist/Thread-Queue/t/02_refs ................................... ok
dist/Thread-Queue/t/03_peek ................................... ok
dist/Thread-Queue/t/04_errs ................................... ok
dist/Thread-Queue/t/05_extract ................................ ok
dist/Thread-Queue/t/06_insert ................................. ok
dist/Thread-Queue/t/07_lock ................................... ok
dist/Thread-Queue/t/08_nothreads .............................. ok
dist/Thread-Queue/t/09_ended .................................. ok
dist/Thread-Queue/t/10_timed .................................. ok
dist/Thread-Semaphore/t/01_basic .............................. ok
dist/Thread-Semaphore/t/02_errs ............................... ok
dist/Thread-Semaphore/t/03_nothreads .......................... ok
dist/Thread-Semaphore/t/04_nonblocking ........................ ok
dist/Thread-Semaphore/t/05_force .............................. ok
dist/threads-shared/t/0nothread ............................... ok
dist/threads-shared/t/av_refs ................................. ok
dist/threads-shared/t/av_simple ............................... ok
dist/threads-shared/t/blessed ................................. ok
dist/threads-shared/t/clone ................................... ok
dist/threads-shared/t/cond .................................... ok
dist/threads-shared/t/disabled ................................ ok
dist/threads-shared/t/dualvar ................................. ok
dist/threads-shared/t/hv_refs ................................. ok
dist/threads-shared/t/hv_simple ............................... ok
dist/threads-shared/t/no_share ................................ ok
dist/threads-shared/t/object2 ................................. ok
dist/threads-shared/t/object .................................. ok
dist/threads-shared/t/shared_attr ............................. ok
dist/threads-shared/t/stress .................................. ok
dist/threads-shared/t/sv_refs ................................. ok
dist/threads-shared/t/sv_simple ............................... ok
dist/threads-shared/t/utf8 .................................... ok
dist/threads-shared/t/waithires ............................... ok
dist/threads-shared/t/wait .................................... ok
dist/threads/t/basic .......................................... ok
dist/threads/t/blocks ......................................... ok
dist/threads/t/context ........................................ ok
dist/threads/t/end ............................................ ok
dist/threads/t/err ............................................ ok
dist/threads/t/exit ........................................... ok
dist/threads/t/free2 .......................................... ok
dist/threads/t/free ........................................... ok
dist/threads/t/join ........................................... ok
dist/threads/t/kill2 .......................................... ok
dist/threads/t/kill ........................................... ok
dist/threads/t/libc ........................................... ok
dist/threads/t/list ........................................... ok
dist/threads/t/no_threads ..................................... skipped
dist/threads/t/problems ....................................... ok
dist/threads/t/stack_env ...................................... ok
dist/threads/t/stack .......................................... ok
dist/threads/t/state .......................................... ok
dist/threads/t/stress_cv ...................................... ok
dist/threads/t/stress_re ...................................... ok
dist/threads/t/stress_string .................................. ok
dist/threads/t/thread ......................................... ok
[...snip...]

BUT with perl -V
config_args='-des -Doptimize=-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 
-fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 
-mtune=generic -Accflags=-DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm 
-Aappend:libswanted=-l resolv -Dversion=5.18.0 -Dmyhostname=localhost 
-Dperladmin=aka at de.ibm.com -Dcc=gcc -Dcf_by=Alex 
-Dprefix=/home/akarner/soft/perl/5.18.0 
-Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64 
/usr/lib64 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles 
-Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog 
-Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 
-Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto 
-Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto 
-Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto 
-Dinc_version_list=none'
    hint=recommended, useposix=true, d_sigaction=define
    useithreads=undef, usemultiplicity=undef

--> Config options show -Dusethreads as well as -Duseithreads but 
useithreads is still undefined.

And this small script
  use Config;
  use Data::Dumper;
  print Dumper(\%Config);
returns in excerpts:
        'config_arg13' => '-Darchname=x86_64-linux-thread-multi',
                'config_arg16' => '-Dusethreads',
                'config_arg17' => '-Duseithreads',
...
        'd_old_pthread_create_joinable' => undef,
                'd_oldpthreads' => undef,
                'd_pthread_atfork' => undef,
                'd_pthread_attr_setscope' => 'define',
                'd_pthread_yield' => undef,
...
        'i_pthread' => 'define',
...
        'libdb_needs_pthread' => 'N',
                'old_pthread_create_joinable' => '',
                'use5005threads' => undef,
                'useithreads' => undef,
                'usethreads' => undef,

No wonder that the Padre installation fails as it checks for 
"$Config{usethreads}" being defined - but I don't understand why there is 
this strange behavior, as the tests for threading succed but the specific 
variables are still undefined. Any idea from your side?

Mit freundlichen Grüßen / Kind regards

Alexander Karner





From:   Brian Fraser <frase...@gmail.com>
To:     Alexander Karner/Germany/IBM@IBMDE, 
Cc:     Perl Beginners <beginners@perl.org>
Date:   18.09.2013 22:31
Subject:        Re: Compilation 5.18.0 on RHEL 6.4 fails to use threads 
(?)



On Wed, Sep 18, 2013 at 10:02 AM, Alexander Karner <a...@de.ibm.com> wrote:
Hi! 
While I'm not a beginner with Perl it seems that I'm somewhat a beginner 
if it comes to compilation: 

I try to compile 5.18.0 on my RHEL 6.4 system. Primarily in order to be 
able to use Padre. 
This is the command to create the configuration: 

Wow, those are a *lot* of options! Are you sure you need all of those? 
perl generally handles most of that itself, and passing stuff like -m64 
and -pthreads manually tends to break Configure's detection of some 
features.
 

sh Configure -de \ 
-Doptimize='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions 
-fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic' \ 
-Accflags='-DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm -pthread' \ 
-Aappend:libswanted='-l resolv' \ 
-Dversion=5.18.0 \ 
-Dmyhostname=localhost \ 
-Dperladmin=a...@my.domain.com \ 
-Dcc=gcc \ 
-Dcf_by='Alex' \ 
-Dprefix=$HOME/soft/perl/5.18.0 \ 
-Darchname=x86_64-linux-thread-multi \ 
-Dlibpth='/usr/local/lib64 /lib64 /usr/lib64' \ 
-Duseshrplib \ 
-Dusethreads \ 
-Duseithreads \ 
-Duselargefiles \ 
-Dd_semctl_semun \ 
-Di_db \ 
-Ui_ndbm \ 
-Di_gdbm \ 
-Di_shadow \ 
-Di_syslog \ 
-Dman3ext=3pm \ 
-Duseperlio \ 
-Dinstallusrbinperl=n \ 
-Ubincompat5005 \ 
-Uversiononly \ 
-Dpager='/usr/bin/less -isr' \ 
-Dd_gethostent_r_proto \ 
-Ud_endhostent_r_proto \ 
-Ud_sethostent_r_proto \ 
-Ud_endprotoent_r_proto \ 
-Ud_setprotoent_r_proto \ 
-Ud_endservent_r_proto \ 
-Ud_setservent_r_proto \ 
-Dinc_version_list=none 

However if I take a look at perl -V after successfull compilation I see: 
Platform: 
    osname=linux, osvers=2.6.32-358.6.1.el6.x86_64, archname=x86_64-linux 
    uname='linux oc7857520232.ibm.com 2.6.32-358.6.1.el6.x86_64 #1 smp fri 
mar 29 16:51:51 edt 2013 x86_64 x86_64 x86_64 gnulinux ' 
    config_args='-des -Doptimize=-O2 -g -pipe -Wall 
-Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector 
--param=ssp-buffer-size=4 -m64 -mtune=generic 
-Accflags=-DPERL_USE_SAFE_PUTENV -I/usr/include/gdbm 
-Aappend:libswanted=-l resolv -Dversion=5.18.0 -Dmyhostname=localhost 
-Dperladmin=aka at de.ibm.com -Dcc=gcc -Dcf_by=Alex 
-Dprefix=/home/akarner/soft/perl/5.18.0 
-Darchname=x86_64-linux-thread-multi -Dlibpth=/usr/local/lib64 /lib64 
/usr/lib64 -Duseshrplib -Dusethreads -Duseithreads -Duselargefiles 
-Dd_semctl_semun -Di_db -Ui_ndbm -Di_gdbm -Di_shadow -Di_syslog 
-Dman3ext=3pm -Duseperlio -Dinstallusrbinperl=n -Ubincompat5005 
-Uversiononly -Dpager=/usr/bin/less -isr -Dd_gethostent_r_proto 
-Ud_endhostent_r_proto -Ud_sethostent_r_proto -Ud_endprotoent_r_proto 
-Ud_setprotoent_r_proto -Ud_endservent_r_proto -Ud_setservent_r_proto 
-Dinc_version_list=none' 
    hint=recommended, useposix=true, d_sigaction=define 
    useithreads=undef, usemultiplicity=undef                 
 <---------------------- 
    useperlio=define, d_sfio=undef, uselargefiles=define, usesocks=undef 
    use64bitint=define, use64bitall=define, uselongdouble=undef 
    usemymalloc=n, bincompat5005=undef 

--> useithreads is still undef 

And if I try to install Padre I receive a message that it requires a 
threaded version of Perl. 

--> Is this normal or do I miss something special at this point? 

That is not normal, but I can't spot you having missed anything obvious. 
Try creating a perl with just

sh Configure -des -Dusethreads

and see if that works. If it doesn't, well, something is awfully wrong 
with your system! If it does, start piling up options until you find out 
what breaks it, and then file a bug against perl itself sot hat no one 
else has to stumble against this in the future :D
Also, you might want to use perlbrew to do all of this.

Attachment: smime.p7s
Description: S/MIME Cryptographic Signature

Reply via email to