Gentoo Archives: gentoo-dev

From: Kevin <lists@×××××××××.com>
To: gentoo-dev@l.g.o
Subject: [gentoo-dev] Possibly OT: Building mod_php-5.0.4; where is dbminit?
Date: Fri, 29 Apr 2005 21:05:14
Message-Id: 4272A18C.9080205@gnosysllc.com
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

Replies

Subject Author
Re: [gentoo-dev] Possibly OT: Building mod_php-5.0.4; where is dbminit? Georgi Georgiev <chutz@×××.net>