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:
None 
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
Description:
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:
_ndberror_classification_message
_ndberror_status_message
_ndberror_update
/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

make

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
    http://www.mysql.com/doc/en/Installing_source_tree.html

Additional info:

rename of Ndberror.cpp Ndberr.cpp