1 |
Hi Devs- |
2 |
|
3 |
Sorry if it's OT, but nobody in -user seems to have a clue on this one. |
4 |
|
5 |
I'm trying to build mod_php-5.0.4 with an ebuild script that is a |
6 |
renamed copy of the one in portage for version 5.0.3-r2. I've got it in |
7 |
my portage overlay and I've adjusted the patch files and so forth to get |
8 |
it working. As far as the ebuild goes, I'm pretty sure everything is |
9 |
fine. Anyway, the same thing happens with unmodified 5.0.3-r2 from |
10 |
portage so it's definitely not my ebuild that is the problem. |
11 |
|
12 |
The trouble is, in building, the configure script fails at: |
13 |
|
14 |
checking whether to enable DBA... yes |
15 |
checking for QDBM support... no |
16 |
checking for gdbm_open in -lgdbm... yes |
17 |
checking for GDBM support... yes |
18 |
checking for NDBM support... no |
19 |
checking for db4 minor version and patch level... ok |
20 |
checking for Berkeley DB4 support... yes |
21 |
checking for Berkeley DB3 support... no |
22 |
checking for Berkeley DB2 support... no |
23 |
checking for dbminit in -ldbm... no |
24 |
checking for dbminit in -lc... no |
25 |
checking for dbminit in -lgdbm... no |
26 |
configure: error: DBA: Could not find necessary library. |
27 |
|
28 |
!!! Please attach the config.log to your bug report: |
29 |
!!! /var/tmp/portage/mod_php-5.0.4/work/php-5.0.4/config.log |
30 |
(pertinent lines from this file included below) |
31 |
|
32 |
Now, on a very similar server, I did successfully build mod_php-5.0.4 in |
33 |
the same way as I'm attempting to do here. The ebuild script is |
34 |
identical, the missing-arches patch file is present but has no content |
35 |
(on both servers). On this server, the configure script sails through |
36 |
this part with the following output: |
37 |
|
38 |
checking whether to enable DBA... yes |
39 |
checking for QDBM support... no |
40 |
checking for gdbm_open in -lgdbm... yes |
41 |
checking for GDBM support... yes |
42 |
checking for NDBM support... no |
43 |
checking for db4 minor version and patch level... ok |
44 |
checking for Berkeley DB4 support... yes |
45 |
checking for Berkeley DB3 support... no |
46 |
checking for Berkeley DB2 support... no |
47 |
checking for dbminit in -ldbm... no |
48 |
checking for dbminit in -lc... yes |
49 |
checking for DBM using GDBM... no |
50 |
checking for DBM support... yes |
51 |
checking for CDB support... builtin |
52 |
checking for INI File support... builtin |
53 |
checking for FlatFile support... builtin |
54 |
checking whether to enable DBA interface... yes |
55 |
|
56 |
The difference is that on the second (successful mod_php-5.0.4 build) |
57 |
server, the config script finds dbminit in -lc (glibc right?), but on |
58 |
the first server, it doesn't find dbminit in any of the places it looks. |
59 |
|
60 |
I can't figure out what the difference is here. Am I being thick-headed |
61 |
or something? The two machines do have different glibc versions, but |
62 |
the first machine (fails to build mod_php) has a newer glibc version: |
63 |
|
64 |
machine 1 (fails): glibc-2.3.4.20041102-r1 |
65 |
machine 2 (succeeds): glibc-2.3.4.20040808-r1 |
66 |
|
67 |
They were both built using the same USE flags: |
68 |
machine 1: |
69 |
machine1 root # emerge -av glibc |
70 |
|
71 |
These are the packages that I would merge, in order: |
72 |
|
73 |
Calculating dependencies ...done! |
74 |
[ebuild R ] sys-libs/glibc-2.3.4.20041102-r1 -build -debug -erandom |
75 |
-hardened (-multilib) +nls -nomalloccheck -nptl -nptlonly -pic |
76 |
-userlocales 0 kB |
77 |
|
78 |
machine 2: |
79 |
machine2 php-5.0.4 # emerge -av glibc |
80 |
|
81 |
These are the packages that I would merge, in order: |
82 |
|
83 |
Calculating dependencies ...done! |
84 |
[ebuild U ] sys-libs/glibc-2.3.4.20041102-r1 [2.3.4.20040808-r1] |
85 |
-build -debug -erandom -hardened (-multilib) +nls -nomalloccheck -nptl |
86 |
-nptlonly -pic -userlocales 2,963 kB |
87 |
|
88 |
|
89 |
Is it perhaps the case that dbminit used to be present in glibc but is |
90 |
no longer? But I don't see it with strings even in the older |
91 |
(successful) machine's glibc files: |
92 |
|
93 |
machine2 lib # pwd |
94 |
/usr/lib |
95 |
machine2 lib # for i in *; do strings $i|grep dbminit && echo "In |
96 |
Library File $i"; done 2> /dev/null |
97 |
dbminit |
98 |
dbminit.o/ 1084750600 0 0 100644 1752 ` |
99 |
dbminit.c |
100 |
dbminit |
101 |
In Library File libgdbm.a |
102 |
dbminit |
103 |
In Library File libgdbm.so |
104 |
dbminit |
105 |
In Library File libgdbm.so.2 |
106 |
dbminit |
107 |
In Library File libgdbm.so.2.0.0 |
108 |
kdb2_dbminit |
109 |
In Library File libkdb5.so |
110 |
kdb2_dbminit |
111 |
In Library File libkdb5.so.4 |
112 |
kdb2_dbminit |
113 |
In Library File libkdb5.so.4.0 |
114 |
|
115 |
machine2 lib # pwd |
116 |
/lib |
117 |
machine2 lib # for i in *; do strings $i|grep dbminit && echo "In |
118 |
Library File $i"; done 2> /dev/null |
119 |
|
120 |
machine2 root # for i in `epm -ql glibc`; do strings $i|grep dbminit && |
121 |
echo "In Library File $i"; done 2> /dev/null |
122 |
machine2 root # |
123 |
|
124 |
|
125 |
|
126 |
Can somebody clue me in here? Is dbminit really somewhere in glibc as |
127 |
the mod_php configure script on machine 2 seems to be saying? By doing |
128 |
strings filename|grep dbminit I don't see it anywhere although I'm sure |
129 |
there's a better way of hunting for it (just don't know what it is). |
130 |
|
131 |
On both machines, I'm using identical USE flags for mod_php: |
132 |
|
133 |
These are the packages that I would merge, in order: |
134 |
|
135 |
Calculating dependencies ...done! |
136 |
[ebuild N ] dev-php/mod_php-5.0.4 -adabas +apache2 +bcmath +berkdb |
137 |
-birdstep +bzlib +calendar +cdb +cpdflib +crypt +ctype +curl |
138 |
+curlwrappers -db2 +dba -dbase +dbm -dbmaker -dbx -debug -dio -empress |
139 |
-empress-bcs -esoob +exif +fam +fdftk +filepro +firebird +flatfile |
140 |
-frontbase +ftp +gd -gd-external +gdbm +gmp -hyperwave-api +iconv +imap |
141 |
-informix -ingres +inifile -iodbc +jpeg +kerberos +ldap -libedit +mcve |
142 |
-memlimit +mhash +mime +ming -mnogosearch -msession -msql -mssql +mysql |
143 |
-mysqli +ncurses +nis +nls -oci8 +odbc -oracle7 -ovrimos -pcntl +pcre |
144 |
-pfpro +png +posix +postgres -qdbm +readline -recode -sapdb +sasl |
145 |
+session -sharedext +sharedmem +simplexml -snmp +soap -sockets -solid |
146 |
+spell +spl +sqlite +ssl -sybase -sybase-ct +sysvipc -threads +tidy |
147 |
+tiff +tokenizer +truetype -wddx +xml2 +xmlrpc +xpm +xsl +zlib 0 kB [1] |
148 |
|
149 |
Total size of downloads: 0 kB |
150 |
Portage overlays: |
151 |
[1] /usr/local/portage |
152 |
|
153 |
When I look for dbminit functions in library files, I'm only getting |
154 |
finds in gdbm libraries on either machine. I don't understand why the |
155 |
config script isn't finding it in -lgdbm on machine 1 because I see it |
156 |
when I do the strings search above. Different dbminit or something? |
157 |
|
158 |
Can anyone see why configure fails on machine 1 but succeeds on machine |
159 |
2? Pertinent lines from config.log here: |
160 |
|
161 |
5893 | /* We use char because int might match the return type of a gcc2 |
162 |
5894 | builtin and then its argument prototype would still apply. */ |
163 |
5895 | char dbminit (); |
164 |
5896 | int |
165 |
5897 | main () |
166 |
5898 | { |
167 |
5899 | dbminit (); |
168 |
5900 | ; |
169 |
5901 | return 0; |
170 |
5902 | } |
171 |
5903 configure:35562: result: no |
172 |
5904 configure:35500: checking for dbminit in -lc |
173 |
5905 configure:35530: i686-pc-linux-gnu-gcc -o conftest -O2 |
174 |
-march=pentium4 - |
175 |
5905 fomit-frame-pointer -pipe -L/usr/lib conftest.c -lc -ldb-4.2 |
176 |
-ldb-4.2 |
177 |
5905 -lgdbm -lcurl -lcpdf -ltiff -ljpeg -lbz2 -lz -lresolv -lm -ldl |
178 |
-lnsl - |
179 |
5905 lxml2 -lz -lm -lssl -lcrypto -ldl -lcurl -lssl -lcrypto -ldl |
180 |
-lssl -lcry |
181 |
5905 pto -ldl -lz >&5 |
182 |
5906 /var/tmp/portage/mod_php-5.0.3-r2/temp/ccDBbNuu.o(.text+0xa): In |
183 |
functio |
184 |
5906 n `main': |
185 |
5907 : undefined reference to `dbminit' |
186 |
5908 collect2: ld returned 1 exit status |
187 |
5909 distcc[20096] ERROR: compile conftest.c on localhost failed |
188 |
5910 configure:35536: $? = 1 |
189 |
|
190 |
I've tried it with distcc turned off too. |
191 |
|
192 |
Any help would be much appreciated. |
193 |
|
194 |
-Kevin |
195 |
http://www.gnosys.us |
196 |
-- |
197 |
gentoo-dev@g.o mailing list |