make file can't find a "ltdl.h" file
Hi,
I'm installing mysql-connector from source. I've been able to run the ./configure I ran it with the following options ./configure --prefix=/usr/local/home/eberwick/BO_3_1/bobje/enterprise120/linux_x86/odbc --with-iodbc=/usr/local --with-mysql-path=/home/eberwick/BO_3_1/bobje/mysql the option in bold is the main one I needed to progress, however I only added the other options since the mySQL documentation referred to them and I thought they might have been the reason the make instruction didn't go ahead correctly. in italics below I tried to add that option siince that is where I have a copy of the file it's after. It's in 2 places in my system /home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl/ltdl.h /usr/share/libtool/libltdl/ltdl.h Any idea how I can point the make to where the "ltdl.h" file is to get this make proceed? cheers, Ed [root@moran mysql-connector-odbc-3.51.27r695]# make --include-dir=/usr/share/libtool/libltdl Making all in util make[1]: Entering directory `/tmp/mysql-connector-odbc-3.51.27r695/util' if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I../driver -I/usr/include -O3 -DDBUG_OFF -I/home/eberwick/BO_3_1/bobje/mysql/include -mcpu=pentiumpro -g -O2 -MT MYODBCUtilAllocDataSource.lo -MD -MP -MF ".deps/MYODBCUtilAllocDataSource.Tpo" -c -o MYODBCUtilAllocDataSource.lo MYODBCUtilAllocDataSource.c; \ then mv -f ".deps/MYODBCUtilAllocDataSource.Tpo" ".deps/MYODBCUtilAllocDataSource.Plo"; else rm -f ".deps/MYODBCUtilAllocDataSource.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I../driver -I/usr/include -O3 -DDBUG_OFF -I/home/eberwick/BO_3_1/bobje/mysql/include -mcpu=pentiumpro -g -O2 -MT MYODBCUtilAllocDataSource.lo -MD -MP -MF .deps/MYODBCUtilAllocDataSource.Tpo -c MYODBCUtilAllocDataSource.c -fPIC -DPIC -o .libs/MYODBCUtilAllocDataSource.o `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. In file included from MYODBCUtil.h:38, from MYODBCUtilAllocDataSource.c:21: ../MYODBC_ODBC.h:8:19: error: ltdl.h: No such file or directory make[1]: *** [MYODBCUtilAllocDataSource.lo] Error 1 make[1]: Leaving directory `/tmp/mysql-connector-odbc-3.51.27r695/util' make: *** [all-recursive] Error 1 [root@moran mysql-connector-odbc-3.51.27r695]# [root@moran mysql-connector-odbc-3.51.27r695]# locate ltdl.h /home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl/ltdl.h /home/eberwick/Desktop/bobje/unixODBC-2.2.14/libltdl/ltdl.h /usr/share/libtool/libltdl/ltdl.h [root@moran mysql-connector-odbc-3.51.27r695]# |
Add that:
--with-ltdl-path=/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl |
Hi Nedzer,
ltdl.h is found in the libltdl3-dev package (on Debian based distros) so you can install that our its equivalent on your system. It usually lives in /usr/include/ so you manually copy the file there if you prefer. Cheers, jdk |
Hi Agrouf
that option --with-ltdl-path=/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl I first tried to put on the # make command Failed (see below) Then I added it to the ./configure command. [root@moran mysql-connector-odbc-3.51.27r695]# ./configure --prefix=/usr/local/home/eberwick/BO_3_1/bobje/enterprise120/linux_x86/odbc --with-iodbc=/usr/local --with-mysql-path=/home/eberwick/BO_3_1/bobje/mysql --with-ltdl-path=/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl and ran it, it worked fine, but when I again tried the 'make' it fell over as below. Could it be the 'This program built for i686-redhat-linux-gnu', I'm running Red Hat Ent 5 on a 32 bit machine however the data source I wish to connect to is a 64 bit machine. cheers "[root@moran mysql-connector-odbc-3.51.27r695]# make --with-ltdl-path=/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl make: unrecognized option `--with-ltdl-path=/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl' Usage: make [options] [target] ... Options: -b, -m Ignored for compatibility. -B, --always-make Unconditionally make all targets. -C DIRECTORY, --directory=DIRECTORY Change to DIRECTORY before doing anything. -d Print lots of debugging information. --debug[=FLAGS] Print various types of debugging information. -e, --environment-overrides Environment variables override makefiles. -f FILE, --file=FILE, --makefile=FILE Read FILE as a makefile. -h, --help Print this message and exit. -i, --ignore-errors Ignore errors from commands. -I DIRECTORY, --include-dir=DIRECTORY Search DIRECTORY for included makefiles. -j [N], --jobs[=N] Allow N jobs at once; infinite jobs with no arg. -k, --keep-going Keep going when some targets can't be made. -l [N], --load-average[=N], --max-load[=N] Don't start multiple jobs unless load is below N. -L, --check-symlink-times Use the latest mtime between symlinks and target. -n, --just-print, --dry-run, --recon Don't actually run any commands; just print them. -o FILE, --old-file=FILE, --assume-old=FILE Consider FILE to be very old and don't remake it. -p, --print-data-base Print make's internal database. -q, --question Run no commands; exit status says if up to date. -r, --no-builtin-rules Disable the built-in implicit rules. -R, --no-builtin-variables Disable the built-in variable settings. -s, --silent, --quiet Don't echo commands. -S, --no-keep-going, --stop Turns off -k. -t, --touch Touch targets instead of remaking them. -v, --version Print the version number of make and exit. -w, --print-directory Print the current directory. --no-print-directory Turn off -w, even if it was turned on implicitly. -W FILE, --what-if=FILE, --new-file=FILE, --assume-new=FILE Consider FILE to be infinitely new. --warn-undefined-variables Warn when an undefined variable is referenced. This program built for i686-redhat-linux-gnu Report bugs to <bug-make@gnu.org> [root@moran mysql-connector-odbc-3.51.27r695]# |
Add that to configure, not make.
Then make just as normal: make |
Hi jdkaye,
that seems like the way to go I'm running Red Hat Ent 5.0. I have that file at /home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl/ltdl.h /usr/share/libtool/libltdl/ltdl.h I'll copy to '/usr/include/' and see how that goes. Hey, that worked much better though still fell over toward the end, the error message now being; I looked for that atomic.h and it's everywhere. Loads of those asm folders too. Totally clueless on how to proceed next. Thanks in advance jdkaye for your help with this. gcc -DHAVE_CONFIG_H -I. -I. -I. -DNONTHREADSAFE -I/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl/include -I/usr/include -O3 -DDBUG_OFF -I/home/eberwick/BO_3_1/bobje/mysql/include -mcpu=pentiumpro -g -O2 -MT libmyodbc3_la-catalog.lo -MD -MP -MF .deps/libmyodbc3_la-catalog.Tpo -c catalog.c -fPIC -DPIC -o .libs/libmyodbc3_la-catalog.o `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. In file included from ../MYODBC_MYSQL.h:12, from myodbc3.h:37, from catalog.c:44: /home/eberwick/BO_3_1/bobje/mysql/include/my_global.h:361:24: error: asm/atomic.h: No such file or directory make[2]: *** [libmyodbc3_la-catalog.lo] Error 1 make[2]: Leaving directory `/tmp/mysql-connector-odbc-3.51.27r695/driver' make[1]: *** [all] Error 2 make[1]: Leaving directory `/tmp/mysql-connector-odbc-3.51.27r695/driver' make: *** [all-recursive] Error 1 Aside : My colleague suggested doing a # yum install libltdl3-dev but no luck I looked up ltdl.h but can't find a download that'll work or not come back with the message like 'a package with ' |
Edit config.h and delete this line:
#define HAVE_ATOMIC_ADD Warning: DO NOT rerun configure after that as it will overwrite config.h ; Just run make |
Quote:
There is an atomic.h that is found in /asm-[your architecture]/atomic.h This is found in your kernel header files. Have you installed the header files for you kernel? Cheers, jdk |
make file can't find a "ltdl.h" file
Hi,
I went looking for config.h There was loads of them /usr/src/kernels/2.6.18-128.el5-i686/include/linux/config.h /usr/src/kernels/2.6.18-128.el5-i686/include/config/i2o/config.h /usr/src/kernels/2.6.18-92.1.22.el5-i686/include/config/x86/find/smp/config.h /usr/src/kernels/2.6.18-92.1.22.el5-i686/include/config/i2o/config.h + loads more... I'm not sure which one to edit. I'll ask around the traps here, but if it's obvious to you let me know, Cheers. |
Hi jdkaye,
/usr/src/kernels/2.6.18-92.1.22.el5-i686/include/asm-i386/ there is indeed an atomic.h file should I edit file like what Agrouf suggested to do with the config.h so as config.h does not refer to this atomic file? Still don't know which config.h file he's on about. Have you any idea's, there loads of them. Cheers, Ed |
total list of config.h files found in my system
note I have a few leagcy attepmts at installing BOXI 3.1 at Desktop bobje so these can be ignored. My instance is running from /home/eberwick/BO_3_1/bobje/ Cheers, Ed /home/eberwick/BO_3_1/bobje/mysql/include/config.h /home/eberwick/BO_3_1/perl/lib/5.8.8/i686-linux/CORE/config.h /home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/Drivers/nn/config.h /home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl/config.h /home/eberwick/Desktop/bobje/mysql/include/config.h /home/eberwick/Desktop/bobje/unixODBC-2.2.14/Drivers/nn/config.h /home/eberwick/Desktop/bobje/unixODBC-2.2.14/libltdl/config.h /home/eberwick/Desktop/perl/lib/5.8.8/i686-linux/CORE/config.h /home/eberwick/bobje/mysql/include/config.h /home/eberwick/perl/lib/5.8.8/i686-linux/CORE/config.h /usr/include/libuser/config.h /usr/include/pci/config.h /usr/lib/perl5/5.8.8/i386-linux-thread-multi/CORE/config.h /usr/src/kernels/2.6.18-128.el5-i686/include/config/i2o/config.h /usr/src/kernels/2.6.18-128.el5-i686/include/config/x86/find/smp/config.h /usr/src/kernels/2.6.18-128.el5-i686/include/linux/config.h /usr/src/kernels/2.6.18-92.1.18.el5-i686/include/config/i2o/config.h /usr/src/kernels/2.6.18-92.1.18.el5-i686/include/config/x86/find/smp/config.h /usr/src/kernels/2.6.18-92.1.18.el5-i686/include/linux/config.h /usr/src/kernels/2.6.18-92.1.22.el5-i686/include/config/i2o/config.h /usr/src/kernels/2.6.18-92.1.22.el5-i686/include/config/x86/find/smp/config.h /usr/src/kernels/2.6.18-92.1.22.el5-i686/include/linux/config.h |
Quote:
It would help to know what kernel you're running. If you're not sure then at a terminal type Code:
uname -a Agrouf knows a lot more than me, so I'd certainly follow his/her suggestion. Just make a note of what you've done in case you have to undo it. Cheers, jdk |
Hi,
I edited the config.h [root@moran tmp]# cat tmp.out | xargs grep HAVE_ATOMIC_ADD /home/eberwick/BO_3_1/bobje/mysql/include/config.h:#define HAVE_ATOMIC_ADD 1 and commented out the offending line with */ I then reran the 'make' and this the error I have now. More to do with the /home/eberwick/BO_3_1/bobje/mysql/include/my_global.h:361:24: error: asm/atomic.h: No such file or directory see appended Thanks for hanging in there lads and reading these posts, fair play to you. [root@moran mysql-connector-odbc-3.51.27r695]# make Making all in util make[1]: Entering directory `/tmp/mysql-connector-odbc-3.51.27r695/util' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/tmp/mysql-connector-odbc-3.51.27r695/util' Making all in driver make[1]: Entering directory `/tmp/mysql-connector-odbc-3.51.27r695/driver' make all-am make[2]: Entering directory `/tmp/mysql-connector-odbc-3.51.27r695/driver' if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -DNONTHREADSAFE -I/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl/include -I/usr/include -O3 -DDBUG_OFF -I/home/eberwick/BO_3_1/bobje/mysql/include -mcpu=pentiumpro -g -O2 -MT libmyodbc3_la-catalog.lo -MD -MP -MF ".deps/libmyodbc3_la-catalog.Tpo" -c -o libmyodbc3_la-catalog.lo `test -f 'catalog.c' || echo './'`catalog.c; \ then mv -f ".deps/libmyodbc3_la-catalog.Tpo" ".deps/libmyodbc3_la-catalog.Plo"; else rm -f ".deps/libmyodbc3_la-catalog.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I. -DNONTHREADSAFE -I/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl/include -I/usr/include -O3 -DDBUG_OFF -I/home/eberwick/BO_3_1/bobje/mysql/include -mcpu=pentiumpro -g -O2 -MT libmyodbc3_la-catalog.lo -MD -MP -MF .deps/libmyodbc3_la-catalog.Tpo -c catalog.c -fPIC -DPIC -o .libs/libmyodbc3_la-catalog.o `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. In file included from ../MYODBC_MYSQL.h:12, from myodbc3.h:37, from catalog.c:44: /home/eberwick/BO_3_1/bobje/mysql/include/my_global.h:361:24: error: asm/atomic.h: No such file or directory make[2]: *** [libmyodbc3_la-catalog.lo] Error 1 make[2]: Leaving directory `/tmp/mysql-connector-odbc-3.51.27r695/driver' make[1]: *** [all] Error 2 make[1]: Leaving directory `/tmp/mysql-connector-odbc-3.51.27r695/driver' make: *** [all-recursive] Error 1 [root@moran mysql-connector-odbc-3.51.27r695]# [root@moran mysql-connector-odbc-3.51.27r695]# make Making all in util make[1]: Entering directory `/tmp/mysql-connector-odbc-3.51.27r695/util' make[1]: Nothing to be done for `all'. make[1]: Leaving directory `/tmp/mysql-connector-odbc-3.51.27r695/util' Making all in driver make[1]: Entering directory `/tmp/mysql-connector-odbc-3.51.27r695/driver' make all-am make[2]: Entering directory `/tmp/mysql-connector-odbc-3.51.27r695/driver' if /bin/sh ../libtool --tag=CC --mode=compile gcc -DHAVE_CONFIG_H -I. -I. -I. -DNONTHREADSAFE -I/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl/include -I/usr/include -O3 -DDBUG_OFF -I/home/eberwick/BO_3_1/bobje/mysql/include -mcpu=pentiumpro -g -O2 -MT libmyodbc3_la-catalog.lo -MD -MP -MF ".deps/libmyodbc3_la-catalog.Tpo" -c -o libmyodbc3_la-catalog.lo `test -f 'catalog.c' || echo './'`catalog.c; \ then mv -f ".deps/libmyodbc3_la-catalog.Tpo" ".deps/libmyodbc3_la-catalog.Plo"; else rm -f ".deps/libmyodbc3_la-catalog.Tpo"; exit 1; fi gcc -DHAVE_CONFIG_H -I. -I. -I. -DNONTHREADSAFE -I/home/eberwick/BO_3_1/unixodbc/unixODBC-2.2.14/libltdl/include -I/usr/include -O3 -DDBUG_OFF -I/home/eberwick/BO_3_1/bobje/mysql/include -mcpu=pentiumpro -g -O2 -MT libmyodbc3_la-catalog.lo -MD -MP -MF .deps/libmyodbc3_la-catalog.Tpo -c catalog.c -fPIC -DPIC -o .libs/libmyodbc3_la-catalog.o `-mcpu=' is deprecated. Use `-mtune=' or '-march=' instead. In file included from ../MYODBC_MYSQL.h:12, from myodbc3.h:37, from catalog.c:44: /home/eberwick/BO_3_1/bobje/mysql/include/my_global.h:361:24: error: asm/atomic.h: No such file or directory make[2]: *** [libmyodbc3_la-catalog.lo] Error 1 |
[eberwick@moran unixODBC-2.2.14]$ uname -a
Linux moran.anam.com 2.6.18-92.1.22.el5 #1 SMP Fri Dec 5 09:29:46 EST 2008 i686 i686 i386 GNU/Linux am I i386 or i686? most of my config.h files seem to be within i686 folders. Friday evening. Cheers for the direction this week jdkaye. I'm eager for this problem to sort itself out if only to stop badgering yourself and Agrouf, have a good weekend. |
Quote:
Code:
Linux Attila 2.6.26-1-686 #1 On my system, for example, atomic.h is found here: /usr/src/linux-headers-2.6.26-1-common/include/asm-x86/atomic.h but maybe naming conventions are very different between our two distros (CentOS and Debian). I'm sorry I can't say more but maybe somebody who knows more about CentOS can help out. You are sure you have installed both the kernel source and the headers for the kernel you're running? Enjoy your weekend also. Cheers, jdk |
All times are GMT -5. The time now is 10:50 AM. |