Bug #69407 | Build warnings with mysql | ||
---|---|---|---|
Submitted: | 5 Jun 2013 17:09 | Modified: | 7 Jan 2014 15:26 |
Reporter: | Raghavendra Prabhu | Email Updates: | |
Status: | Duplicate | Impact on me: | |
Category: | MySQL Server: Compiling | Severity: | S3 (Non-critical) |
Version: | 5.5 | OS: | Linux |
Assigned to: | Tor Didriksen | CPU Architecture: | Any |
[5 Jun 2013 17:09]
Raghavendra Prabhu
[5 Jun 2013 23:09]
MySQL Verification Team
Thank you for the bug report. Which OS version are you using?. I couldn't repeat compiling 5.5.32: miguel@miguel:~$ gcc --version gcc (Ubuntu 4.8.1-2ubuntu1~13.04) 4.8.1 Copyright (C) 2013 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE [ 19%] Building C object mysys/CMakeFiles/mysys.dir/md5.c.o [ 19%] Building C object mysys/CMakeFiles/mysys.dir/mf_cache.c.o [ 19%] Building C object mysys/CMakeFiles/mysys.dir/mf_dirname.c.o [ 19%] Building C object mysys/CMakeFiles/mysys.dir/mf_fn_ext.c.o [ 19%] Building C object mysys/CMakeFiles/mysys.dir/mf_format.c.o <<<<<<<<<< [ 19%] Building C object mysys/CMakeFiles/mysys.dir/mf_getdate.c.o
[5 Jun 2013 23:15]
MySQL Verification Team
I found however several warnings like: /home/miguel/mysql-5.5.32/sql/field.cc: In member function ‘virtual int Field_blob::store(const char*, uint, CHARSET_INFO*)’: /home/miguel/mysql-5.5.32/sql/field.cc:7383:48: warning: argument to ‘sizeof’ in ‘void* memmove(void*, const void*, size_t)’ call is the same pointer type ‘char*’ as the source; expected ‘char’ or an explicit length [-Wsizeof-pointer-memaccess] bmove(ptr+packlength,(char*) &from,sizeof(char*)); ^ /home/miguel/mysql-5.5.32/sql/field.cc: In member function ‘virtual int Field_geom::store(const char*, uint, CHARSET_INFO*)’: /home/miguel/mysql-5.5.32/sql/field.cc:7900:50: warning: argument to ‘sizeof’ in ‘void* memmove(void*, const void*, size_t)’ call is the same pointer type ‘char*’ as the source; expected ‘char’ or an explicit length [-Wsizeof-pointer-memaccess] bmove(ptr + packlength, (char*) &from, sizeof(char*)); ^ /home/miguel/mysql-5.5.32/include/m_string.h:55:45: note: in definition of macro ‘bmove’ # define bmove(d, s, n) memmove((d), (s), (n))
[24 Oct 2013 9:55]
Laurynas Biveinis
The md5.c warnings were fixed in 5.5.32 as bug 69407. They are still present on 5.1 (and bug 69407 is not fixed there): md5.c: In function ‘my_MD5Final’: md5.c:179:24: error: argument to ‘sizeof’ in ‘memset’ call is the same expression as the destination; did you mean to dereference it? [-Werror=sizeof-pointer-memaccess] memset(ctx, 0, sizeof(ctx)); /* In case it's sensitive */ ^
[24 Oct 2013 13:36]
Laurynas Biveinis
Other GCC 4.8.1 warnings on the current 5.1 trunk: gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I../../sql -I. -Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror -Wdeclaration-after-statement -g -DSAFE_MUTEX -DSAFEMALLOC -Wall -Wextra -Wunused -Wwrite-strings -mtune=native -DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX -DUNIV_DEBUG -D_FORTIFY_SOURCE=2 -fmessage-length=0 -g3 -DUNIV_LINUX -MT mi_key.o -MD -MP -MF .deps/mi_key.Tpo -c -o mi_key.o mi_key.c mi_key.c: In function ‘_mi_put_key_in_record’: mi_key.c:422:31: error: argument to ‘sizeof’ in ‘memcpy’ call is the same pointer type ‘char *’ as the source; expected ‘char’ or an explicit length [-Werror=sizeof-pointer-memaccess] (char*) &blob_ptr,sizeof(char*)); ^ cc1: all warnings being treated as errors make[2]: *** [mi_key.o] Error 1 gcc -DHAVE_CONFIG_H -I. -I../../include -I../../include -I../../include -I../../regex -I../../sql -I. -Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror -Wdeclaration-after-statement -g -DSAFE_MUTEX -DSAFEMALLOC -Wall -Wextra -Wunused -Wwrite-strings -mtune=native -DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX -DUNIV_DEBUG -D_FORTIFY_SOURCE=2 -fmessage-length=0 -g3 -DUNIV_LINUX -MT mi_checksum.o -MD -MP -MF .deps/mi_checksum.Tpo -c -o mi_checksum.o mi_checksum.c mi_checksum.c: In function ‘mi_checksum’: mi_checksum.c:37:13: error: argument to ‘sizeof’ in ‘memcpy’ call is the same pointer type ‘char *’ as the destination; expected ‘char’ or an explicit length [-Werror=sizeof-pointer-memaccess] sizeof(char*)); ^ cc1: all warnings being treated as errors make[2]: *** [mi_checksum.o] Error 1 gcc -DMYSQL_SERVER -DDEFAULT_MYSQL_HOME="\"/usr/local/mysql\"" -DMYSQL_DATADIR="\"/usr/local/mysql/var\"" -DSHAREDIR="\"/usr/local/mysql/share/mysql\"" -DPLUGINDIR="\"/usr/local/mysql/lib/mysql/plugin\"" -DHAVE_EVENT_SCHEDULER -DHAVE_CONFIG_H -I. -I../include -I../include -I../include -I../regex -I. -Wall -Wextra -Wunused -Wwrite-strings -Wno-strict-aliasing -Werror -Wno-unused-parameter -g -DSAFE_MUTEX -DSAFEMALLOC -Wall -Wextra -Wunused -Wwrite-strings -Wno-unused-parameter -Wnon-virtual-dtor -felide-constructors -fno-exceptions -fno-rtti -mtune=native -DUNIV_MUST_NOT_INLINE -DEXTRA_DEBUG -DFORCE_INIT_OF_VARS -DSAFEMALLOC -DPEDANTIC_SAFEMALLOC -DSAFE_MUTEX -DUNIV_DEBUG -D_FORTIFY_SOURCE=2 -fmessage-length=0 -g3 -DYACC_HEXT_HH -fno-implicit-templates -fno-exceptions -fno-rtti -MT field.o -MD -MP -MF .deps/field.Tpo -c -o field.o field.cc In file included from mysql_priv.h:38:0, from field.cc:29: field.cc: In member function ‘virtual int Field_blob::store(const char*, uint, CHARSET_INFO*)’: field.cc:7704:48: error: argument to ‘sizeof’ in ‘void* memmove(void*, const void*, size_t)’ call is the same pointer type ‘char*’ as the source; expected ‘char’ or an explicit length [-Werror=sizeof-pointer-memaccess] bmove(ptr+packlength,(char*) &from,sizeof(char*)); ^ ../include/m_string.h:53:45: note: in definition of macro ‘bmove’ # define bmove(d, s, n) memmove((d), (s), (n)) ^ field.cc: In member function ‘virtual int Field_geom::store(const char*, uint, CHARSET_INFO*)’: field.cc:8359:50: error: argument to ‘sizeof’ in ‘void* memmove(void*, const void*, size_t)’ call is the same pointer type ‘char*’ as the source; expected ‘char’ or an explicit length [-Werror=sizeof-pointer-memaccess] bmove(ptr + packlength, (char*) &from, sizeof(char*)); ^ ../include/m_string.h:53:45: note: in definition of macro ‘bmove’ # define bmove(d, s, n) memmove((d), (s), (n)) ^ cc1plus: all warnings being treated as errors make[3]: *** [field.o] Error 1
[25 Oct 2013 7:28]
Laurynas Biveinis
I am sorry, I meant bug 68909 "In my_MD5Final in mysys/md5.c, ctx is not properly zeroed as intended", not bug 69407 itself two comments above.
[28 Oct 2013 9:46]
Laurynas Biveinis
The 5.5 branch warnings have been fixed by 5.5$ bzr log -r 4387 ------------------------------------------------------------ revno: 4387 committer: Tor Didriksen <tor.didriksen@oracle.com> branch nick: 5.5 timestamp: Fri 2013-06-14 10:52:23 +0200 message: Bug#16729109: FIX COMPILATION WARNINGS WITH GCC 4.8 Backport to 5.5 (external Bug#69407 Build warnings with mysql) The status of this bug needs updating.
[7 Jan 2014 15:26]
Ståle Deraas
Dup of http://bugs.mysql.com/69407 , which was fixed in 5.5.33
[8 Jan 2014 4:48]
Laurynas Biveinis
69407 is this bug. What would be the correct bug id of the duplicate?