Momenteel staat er een perl-5.8.0 op mijn systeem zonder threading support wat het bouwen van bepaalde apps toch moeilijk maakt. Om die reden probeer ik nu perl-5.8.5 met ithread support te installeren op mijn LFS-5.0 systeem, maar het build process faalt als ik threading support inschakel.
De configure regel die ik gebruik:
Ergens tijdens de configure geeft het (onder andere) dit weer:
Tijdens het build proces gaar het dan ook fout, het blijkt dat bepaalde reentrant function prototypes niet gevonden kunnen worden:
Het klopt wel ongeveer wat er gezegd wordt, in /usr/include/netdb.h is helemaal niets terug te vinden van de reentrant sethostent_r. Deze is echter wel aanwezig op mijn systeem als een macro in /usr/include/lwres/netdb.h, waarschijnlijk als onderdeel van bind.
Wat ik mij afvraag, is het mogelijk na het configure process de regel(s) in config.h naar undef te veranderen:
Zou perl dan builden en zo ja, zal het een goede built zijn?
Of is er misschien een mogelijkheid perl te laten werken met de netdb.h prototypes uit /usr/include/lwres/netdb.h?
Ik heb hier niet ernstig veel ervaring mee en de drie hits die google geeft concluderen enkel dat er sprake is van een nare situatie...
De configure regel die ik gebruik:
code:
1
| sh Configure -Dprefix=/usr -Dusethreads -de |
Ergens tijdens de configure geeft het (onder andere) dit weer:
code:
1
2
3
4
5
6
| sethostent_r() found.
sethostent_r() prototype NOT found.
*** WHOA THERE!!! ***
The previous value for $d_sethostent_r_proto on this machine was "define"!
Keep the previous value? [y] |
Tijdens het build proces gaar het dan ook fout, het blijkt dat bepaalde reentrant function prototypes niet gevonden kunnen worden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
| pp_sys.c: In function `Perl_pp_shostent': pp_sys.c:5054: warning: implicit declaration of function `sethostent_r' pp_sys.c:5054: error: structure has no member named `_hostent_data' pp_sys.c: In function `Perl_pp_sprotoent': pp_sys.c:5076: warning: implicit declaration of function `setprotoent_r' pp_sys.c:5076: error: structure has no member named `_protoent_data' pp_sys.c: In function `Perl_pp_sservent': pp_sys.c:5087: warning: implicit declaration of function `setservent_r' pp_sys.c:5087: error: structure has no member named `_servent_data' pp_sys.c: In function `Perl_pp_ehostent': pp_sys.c:5098: warning: implicit declaration of function `endhostent_r' pp_sys.c:5098: error: structure has no member named `_hostent_data' pp_sys.c: In function `Perl_pp_eprotoent': pp_sys.c:5122: warning: implicit declaration of function `endprotoent_r' pp_sys.c:5122: error: structure has no member named `_protoent_data' pp_sys.c: In function `Perl_pp_eservent': pp_sys.c:5134: warning: implicit declaration of function `endservent_r' pp_sys.c:5134: error: structure has no member named `_servent_data' make: *** [pp_sys.o] Error 1 |
Het klopt wel ongeveer wat er gezegd wordt, in /usr/include/netdb.h is helemaal niets terug te vinden van de reentrant sethostent_r. Deze is echter wel aanwezig op mijn systeem als een macro in /usr/include/lwres/netdb.h, waarschijnlijk als onderdeel van bind.
Wat ik mij afvraag, is het mogelijk na het configure process de regel(s) in config.h naar undef te veranderen:
code:
1
2
3
| ... d_sethostent_r='define' .. |
Zou perl dan builden en zo ja, zal het een goede built zijn?
Of is er misschien een mogelijkheid perl te laten werken met de netdb.h prototypes uit /usr/include/lwres/netdb.h?
Ik heb hier niet ernstig veel ervaring mee en de drie hits die google geeft concluderen enkel dat er sprake is van een nare situatie...
[ Voor 3% gewijzigd door Verwijderd op 18-08-2004 16:29 ]