Bug #3735 file name conflict causes lastest 4.1.2-alpha bk NDB build to fail
Submitted: 13 May 2004 4:25 Modified: 13 May 2004 15:12
Reporter: Gene Diveglia Email Updates:
Status: Closed Impact on me:
Category:MySQL Server: Compiling Severity:S1 (Critical)
Version:4.1.2 bk OS:MacOS (Mac OS X Panther 10.3.3)
Assigned to: Tomas Ulin CPU Architecture:Any

[13 May 2004 4:25] Gene Diveglia
The Mac OS X HFS+ filesystem (default for boot volumes) is case-insensitive for file names.  
Consequently, the source files Ndberror.cpp and ndberror.c both compile to ndberror.o.  This results in 
the last compiled object file overwriting the previously compiled one, as well as dependency checking 
failures.  The build fails when it attemtps to link object modules into the libNDB_API shared object and 
the symbols from the over-written model fail to link.

make bins
cd .a_tmp && for i in ../../lib/libndbapi.a ../../lib/libtransporter.a ../../lib/libgeneral.a ../../lib/
libsignaldataprint.a ../../lib/libmgmsrvcommon.a ../../lib/libportlib.a ../../lib/liblogger.a ../../lib/
libtrace.a; do ar -x ../$i; done &&  ar rcs  ../../../lib/libNDB_API.a *.o
./../../home/bin/ndb_deploy ../../lib/libNDB_API.a
cd .so_tmp && for i in ../../lib/libndbapi_pic.a ../../lib/libtransporter_pic.a ../../lib/libgeneral_pic.a ../
../lib/libsignaldataprint_pic.a ../../lib/libmgmsrvcommon_pic.a ../../lib/libportlib_pic.a ../../lib/
liblogger_pic.a ../../lib/libtrace_pic.a; do ar -x ../$i; done
gcc -dynamiclib -o  ../../lib/libNDB_API.dylib .so_tmp/*.o -L./../../lib  -lstdc++
ld: Undefined symbols:
/usr/bin/libtool: internal link edit command failed
make[1]: *** [../../lib/libNDB_API.dylib] Error 1
make: *** [first] Error 2

How to repeat:
(on OS X)

./configure --with-innodb --with-ndbcluster --with-debug


Suggested fix:
Change one or the other of the source file names to remove the case-insensitivity conflict.
[13 May 2004 15:12] Tomas Ulin
Thank you for your bug report. This issue has been committed to our
source repository of that product and will be incorporated into the
next release.

If necessary, you can access the source repository and build the latest
available version, including the bugfix, yourself. More information 
about accessing the source trees is available at

Additional info:

rename of Ndberror.cpp Ndberr.cpp