Bug #49955 ld error message: undefined reference to `strmov_overlapp'
Submitted: 28 Dec 2009 10:13 Modified: 12 Mar 2010 16:16
Reporter: Gleb Shchepa Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.0+ OS:Linux (32bit Ubuntu 9.10, Gentoo)
Assigned to: Gleb Shchepa CPU Architecture:Any

[28 Dec 2009 10:13] Gleb Shchepa
Description:
Can't build the server after the fix for bug #48866:

../mysys/libmysys.a(mf_pack.o): In function `pack_dirname':
mysql-5.0-bugteam/mysys/mf_pack.c:76: undefined reference to `strmov_overlapp'
mysql-5.0-bugteam/mysys/mf_pack.c:86: undefined reference to `strmov_overlapp'
mysql-5.0-bugteam/mysys/mf_pack.c:93: undefined reference to `strmov_overlapp'

How to repeat:
Run BUILD/compile-pentium-debug-all or probably any other build script.
[28 Dec 2009 10:15] Gleb Shchepa
gcc version 4.3.4 (Gentoo 4.3.4 p1.0, pie-10.1.5) 
gcc version 4.4.1 (Ubuntu 4.4.1-4ubuntu8)
[28 Dec 2009 10:57] Sveta Smirnova
Not repeatable with mysql-5.0-bugteam tree on RedHat and script compile-pentium-debug-max
[28 Dec 2009 11:58] MySQL Verification Team
I couldn't compile too on Ubuntu 9.10 X64, however with below error:

/libmysqlclient.so -lcrypt -lnsl -lm -lz -Wl,-rpath -Wl,/home/miguel/dbs/5,0bg/lib/mysql
/usr/bin/ld: 0bg/lib/mysql: No such file: No such file or directory
collect2: ld returned 1 exit status
make[2]: *** [mysql] Error 1
mv -f .deps/mysqltest.Tpo .deps/mysqltest.Po
mv -f .deps/mysqlbinlog.Tpo .deps/mysqlbinlog.Po
make[2]: Leaving directory `/home/miguel/bzr/5.0-bugteam/client'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/miguel/bzr/5.0-bugteam'
make: *** [all] Error 2
miguel@quetzal3:~/bzr/5.0-bugteam$ 

Could you please try latest pull to verify if we get the same issuen?.
Thanks in advance.
[28 Dec 2009 13:45] Gleb Shchepa
>  [28 Dec 12:58] Miguel Solorzano
> I couldn't compile too on Ubuntu 9.10 X64, however with below error:
...

Miguel, latest revision of 5.0-bugteam fails with reported error (strmov_overlapp).
[28 Dec 2009 14:48] Gleb Shchepa
Only 32bit builds with --enable-assembler (enabled by default) are affected.
[28 Dec 2009 15:11] Gleb Shchepa
Suggested fix (against 5.0-bugteam):

=== modified file 'include/m_string.h'
--- old/include/m_string.h	2009-12-16 17:31:19 +0000
+++ new/include/m_string.h	2009-12-28 15:07:11 +0000
@@ -96,6 +96,7 @@ extern void (*my_str_free)(void *);
 
 #if defined(HAVE_STPCPY) && !defined(HAVE_mit_thread)
 #define strmov(A,B) stpcpy((A),(B))
+#define strmov_overlapp(A,B) stpcpy(A,B)
 #ifndef stpcpy
 extern char *stpcpy(char *, const char *);	/* For AIX with gcc 2.95.3 */
 #endif
@@ -172,7 +173,7 @@ extern	char *strmake(char *dst,const cha
 
 #ifndef strmov
 extern	char *strmov(char *dst,const char *src);
-#else
+#elif !defined(HAVE_STPCPY) || defined(HAVE_mit_thread)
 extern	char *strmov_overlapp(char *dst,const char *src);
 #endif
 extern	char *strnmov(char *dst,const char *src,uint n);
[28 Dec 2009 15:20] Gleb Shchepa
Suggested fix in the previous message is incorrect, please ignore. Sorry.
[28 Dec 2009 15:33] Gleb Shchepa
Suggested patch:

=== modified file 'strings/Makefile.am'
--- old/strings/Makefile.am	2009-03-11 07:11:59 +0000
+++ new/strings/Makefile.am	2009-12-28 15:23:49 +0000
@@ -21,7 +21,7 @@ pkglib_LIBRARIES =	libmystrings.a
 # Exact one of ASSEMBLER_X
 if ASSEMBLER_x86
 ASRCS		= strings-x86.s longlong2str-x86.s my_strtoll10-x86.s
-CSRCS		= bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c str_alloc.c longlong2str_asm.c
+CSRCS		= bfill.c bmove.c bmove512.c bchange.c strxnmov.c int2str.c str2int.c r_strinstr.c strtod.c bcmp.c strtol.c strtoul.c strtoll.c strtoull.c llstr.c strnlen.c ctype.c ctype-simple.c ctype-mb.c ctype-big5.c ctype-cp932.c ctype-czech.c ctype-eucjpms.c ctype-euc_kr.c ctype-gb2312.c ctype-gbk.c ctype-sjis.c ctype-tis620.c ctype-ujis.c ctype-utf8.c ctype-ucs2.c ctype-uca.c ctype-win1250ch.c ctype-bin.c ctype-latin1.c my_vsnprintf.c xml.c decimal.c ctype-extra.c str_alloc.c longlong2str_asm.c strmov.c
 else
 if ASSEMBLER_sparc32
 # These file MUST all be on the same line!! Otherwise automake
[28 Dec 2009 19:30] Sveta Smirnova
Thank you for the feedback.

Verified as described on 32-bit box.
[11 Jan 2010 10:33] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/96474

2837 Gleb Shchepa	2010-01-11
      Bug #49955: ld error message: undefined reference to `strmov_overlapp'
      
      32bit builds with the --enable-assembler flag (enabled by default)
      fail with an error message: undefined reference to `strmov_overlapp'.
      
      Since the fix for bug 48866 we use a home-grown strmov function
      instead of the ctpcpy function, but the source file for this
      function was missed in the Makefile.am.
      
      The strings/Makefile.am file has been modified to include strmov.c
      file into ASSEMBLER_x86 and ASSEMBLER_sparc32 sections.
     @ strings/Makefile.am
        Bug #49955: ld error message: undefined reference to `strmov_overlapp'
        
        The strings/Makefile.am file has been modified to include
        strmov.c file into ASSEMBLER_x86 and ASSEMBLER_sparc32 sections.
[11 Jan 2010 15:11] Bugs System
A patch for this bug has been committed. After review, it may
be pushed to the relevant source trees for release in the next
version. You can access the patch from:

  http://lists.mysql.com/commits/96504

2837 Gleb Shchepa	2010-01-11
      Bug #49955: ld error message: undefined reference to `strmov_overlapp'
      
      32bit builds with the --enable-assembler flag (enabled by default)
      fail with an error message: undefined reference to `strmov_overlapp'.
      
      Since the fix for bug 48866 we use a home-grown strmov function
      instead of the ctpcpy function, but the source file for this
      function was missed in the Makefile.am.
      
      The strings/Makefile.am file has been modified to include strmov.c
      file into ASSEMBLER_x86 and ASSEMBLER_sparc32 sections.
     @ strings/Makefile.am
        Bug #49955: ld error message: undefined reference to `strmov_overlapp'
        
        The strings/Makefile.am file has been modified to include
        strmov.c file into ASSEMBLER_x86 and ASSEMBLER_sparc32 sections.
[14 Jan 2010 8:26] Bugs System
Pushed into 5.0.90 (revid:joro@sun.com-20100114082402-05fod2h6z9x9wok8) (version source revid:gshchepa@mysql.com-20100111142122-xy9qa4jhx0dq3luh) (merge vers: 5.0.89) (pib:16)
[15 Jan 2010 8:58] Bugs System
Pushed into 5.1.43 (revid:joro@sun.com-20100115085139-qkh0i0fpohd9u9p5) (version source revid:gshchepa@mysql.com-20100111143106-64my1au4hic39k2w) (merge vers: 5.1.42) (pib:16)
[16 Jan 2010 2:41] Paul DuBois
No changelog entry needed. Did not appear in any released version.
[5 Feb 2010 11:46] Bugs System
Pushed into mysql-next-mr (revid:alik@sun.com-20100204063540-9czpdmpixi3iw2yb) (version source revid:alik@sun.com-20100119163614-172adculixyu26j5) (pib:16)
[5 Feb 2010 11:52] Bugs System
Pushed into 6.0.14-alpha (revid:alik@sun.com-20100205113942-oqovjy0eoqbarn7i) (version source revid:alik@sun.com-20100204064210-ljwanqvrjs83s1gq) (merge vers: 6.0.14-alpha) (pib:16)
[5 Feb 2010 11:58] Bugs System
Pushed into 5.5.2-m2 (revid:alik@sun.com-20100203172258-1n5dsotny40yufxw) (version source revid:alexey.kopytov@sun.com-20100115112653-e3a24041ag1cv6v3) (merge vers: 5.5.1-m2) (pib:16)
[12 Mar 2010 14:16] Bugs System
Pushed into 5.1.44-ndb-7.0.14 (revid:jonas@mysql.com-20100312135944-t0z8s1da2orvl66x) (version source revid:jonas@mysql.com-20100312115609-woou0te4a6s4ae9y) (merge vers: 5.1.44-ndb-7.0.14) (pib:16)
[12 Mar 2010 14:32] Bugs System
Pushed into 5.1.44-ndb-6.2.19 (revid:jonas@mysql.com-20100312134846-tuqhd9w3tv4xgl3d) (version source revid:jonas@mysql.com-20100312060623-mx6407w2vx76h3by) (merge vers: 5.1.44-ndb-6.2.19) (pib:16)
[12 Mar 2010 14:48] Bugs System
Pushed into 5.1.44-ndb-6.3.33 (revid:jonas@mysql.com-20100312135724-xcw8vw2lu3mijrhn) (version source revid:jonas@mysql.com-20100312103652-snkltsd197l7q2yg) (merge vers: 5.1.44-ndb-6.3.33) (pib:16)
[12 Mar 2010 16:16] Paul DuBois
No changelog entry needed.