Topic: MySQL 5.5.10/5.5.11 SRPM rebuild fails on CentOS 5

Since MySQL version 5.5.10 (including 5.5.11) I can't rebuild from SRPM on CentOS 5.5 or now CentOS 5.6.
Using http://rpms.famillecollet.com/SRPMS/mys … mi.src.rpm

[build@build-x86-64 ~]$ rpmbuild -ba --define='rhel 5' /usr/src/redhat/SPECS/mysql55.spec
...snip...
+ cp /usr/src/redhat/SOURCES/mysql-embedded-check.c .
+ ln -s libmysqld.so.0.0.1 libmysqld.so.0
+ gcc -I../../include -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC -lstdc++ mysql-embedded-check.c libmysqld.so.0
libmysqld.so.0: undefined reference to `mysql_keycache__write__block_semaphore'
libmysqld.so.0: undefined reference to `mysql_insert__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_handler__wrlock__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_net__write__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_update__row__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_select__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_query__cache__miss_semaphore'
libmysqld.so.0: undefined reference to `mysql_command__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_keycache__read__hit_semaphore'
libmysqld.so.0: undefined reference to `mysql_multi__update__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_handler__unlock__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_keycache__read__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_delete__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_delete__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_filesort__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_handler__rdlock__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_filesort__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_select__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_index__read__row__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_query__cache__hit_semaphore'
libmysqld.so.0: undefined reference to `mysql_insert__row__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_read__row__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_handler__wrlock__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_query__exec__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_keycache__read__block_semaphore'
libmysqld.so.0: undefined reference to `mysql_index__read__row__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_update__row__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_multi__delete__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_query__parse__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_multi__update__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_keycache__write__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_keycache__write__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_query__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_handler__rdlock__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_update__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_multi__delete__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_command__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_delete__row__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_delete__row__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_insert__row__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_keycache__read__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_net__read__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_insert__select__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_net__write__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_query__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_read__row__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_query__parse__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_net__read__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_handler__unlock__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_insert__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_update__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_insert__select__done_semaphore'
libmysqld.so.0: undefined reference to `mysql_query__exec__start_semaphore'
libmysqld.so.0: undefined reference to `mysql_keycache__read__miss_semaphore'
collect2: ld returned 1 exit status
error: Bad exit status from /var/tmp/rpm-tmp.65251 (%build)


RPM build errors:
    Bad exit status from /var/tmp/rpm-tmp.65251 (%build)
...snip...

Nothing has changed in my build environment since MySQL 5.5.9.  Any help or suggestions?  The same problem appears in both i386 and x86_64 environments.

Best Regards,
Ken Price

Re: MySQL 5.5.10/5.5.11 SRPM rebuild fails on CentOS 5

I don't think there is a need to rebuild. Binary RPM build against EL 5.5 works perfectly on EL 5.6 (used on this server). Because EL is designed to keep binary compatibility across minor versions.

Just run a test build, against latest 5.6 tree here without any problem

...
+ ln -s libmysqld.so.0.0.1 libmysqld.so.0
+ gcc -I../../include -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -fno-strict-aliasing -fwrapv -fPIC mysql-embedded-check.c libmysqld.so.0
+ LD_LIBRARY_PATH=.
+ ldd ./a.out
    linux-vdso.so.1 =>  (0x00007fffe7562000)
    libmysqld.so.0 => ./libmysqld.so.0 (0x00007f5d5c631000)
    libc.so.6 => /lib64/libc.so.6 (0x00007f5d5c2d9000)
...
Laptop:  Fedora 38 + rpmfusion + remi (SCL only)
x86_64 builder: Fedora 39 + rpmfusion + remi-test
aarch64 builder: RHEL 9 with EPEL
Hosting Server: CentOS 8 Stream with EPEL, rpmfusion, remi

Re: MySQL 5.5.10/5.5.11 SRPM rebuild fails on CentOS 5

Argh!  Appears to have been my build environment(s).  Built a new CentOS 5.6 dev environment from scratch and worked just fine.  Regardless, thanks for the quick response!