Linux - NewbieThis Linux forum is for members that are new to Linux.
Just starting out and have a question?
If it is not in the man pages or the how-to's this is the place!
Notices
Welcome to LinuxQuestions.org, a friendly and active Linux Community.
You are currently viewing LQ as a guest. By joining our community you will have the ability to post topics, receive our newsletter, use the advanced search, subscribe to threads and access many other special features. Registration is quick, simple and absolutely free. Join our community today!
Note that registered members see fewer ads, and ContentLink is completely disabled once you log in.
If you have any problems with the registration process or your account login, please contact us. If you need to reset your password, click here.
Having a problem logging in? Please visit this page to clear all LQ-related cookies.
Get a virtual cloud desktop with the Linux distro that you want in less than five minutes with Shells! With over 10 pre-installed distros to choose from, the worry-free installation life is here! Whether you are a digital nomad or just looking for flexibility, Shells can put your Linux machine on the device that you want to use.
Exclusive for LQ members, get up to 45% off per month. Click here for more info.
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]#
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
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]#
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
Hi Nedzer,
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
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
Hi Nezder,
It would help to know what kernel you're running. If you're not sure then at a terminal type
Code:
uname -a
You should see one of your atomic.h files as a subfolder containing this kernel name. Since the program you're compiling is looking for atomic.h in an asm folder, then find the one that matches your kernel and that should be it. If you don't find an atomic.h in a folder that matches your current kernel then you need to download and install the header files for that kernel.
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
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.
[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.
I'm confused by the result of the uname-a command. For example on my machine, the result is this:
Code:
Linux Attila 2.6.26-1-686 #1
So you can see I'm using a 686 kernel. I've never seen a kernel label ending in el5 but then I'm not familiar with CentOS naming conventions. The 2.6.18 kernel (if that's what it is) is a bit old. You might consider updating it to a more recent version and remember to get the kernel source and the header files if you do this. That may solve the problem. I would guess you're using the 686 kernel (2.6.18-92.1.22.el5-686) but the file location, /usr/src/kernels/2.6.18-92.1.22.el5-i686/include/asm-i386/, seems contradictory.
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?
LinuxQuestions.org is looking for people interested in writing
Editorials, Articles, Reviews, and more. If you'd like to contribute
content, let us know.