build need C99 mode

Bug #1094414 reported by Remi Collet
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
libmemcached
Fix Released
Undecided
Unassigned

Bug Description

Adding -std=c99 to CFLAGS is a woraround

During build

  CC clients/ms_stats.o
clients/ms_stats.c: In function 'ms_get_events':
clients/ms_stats.c:127:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_stats.c:127:3: note: use option -std=c99 or -std=gnu99 to compile your code
clients/ms_stats.c: In function 'ms_dump_stats':
clients/ms_stats.c:148:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_stats.c:177:12: error: conflicting types for 'i'
clients/ms_stats.c:148:17: note: previous definition of 'i' was here
clients/ms_stats.c:177:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_stats.c:189:12: error: redefinition of 'i'
clients/ms_stats.c:177:12: note: previous definition of 'i' was here
clients/ms_stats.c:189:3: error: 'for' loop initial declarations are only allowed in C99 mode
make[1]: *** [clients/ms_stats.o] Error 1
make[1]: *** Waiting for unfinished jobs....
clients/memaslap.c: In function 'ms_help_command':
clients/memaslap.c:136:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/memaslap.c:136:3: note: use option -std=c99 or -std=gnu99 to compile your code
make[1]: *** [clients/memaslap.o] Error 1
clients/ms_setting.c: In function 'ms_get_serverlist':
clients/ms_setting.c:168:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:168:3: note: use option -std=c99 or -std=gnu99 to compile your code
clients/ms_setting.c: In function 'ms_calc_avg_size':
clients/ms_setting.c:546:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:556:12: error: redefinition of 'j'
clients/ms_setting.c:546:12: note: previous definition of 'j' was here
clients/ms_setting.c:556:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c: In function 'ms_build_distr':
clients/ms_setting.c:663:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:665:5: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:673:12: error: redefinition of 'm'
clients/ms_setting.c:663:12: note: previous definition of 'm' was here
clients/ms_setting.c:673:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:675:5: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:695:7: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:723:7: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:735:5: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:742:5: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:744:7: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:764:9: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:792:9: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:801:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c:804:5: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_setting.c: In function 'ms_init_random_block':
clients/ms_setting.c:833:3: error: 'for' loop initial declarations are only allowed in C99 mode
make[1]: *** [clients/ms_setting.o] Error 1
clients/ms_conn.c: In function 'ms_item_win_init':
clients/ms_conn.c:437:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_conn.c:437:3: note: use option -std=c99 or -std=gnu99 to compile your code
clients/ms_conn.c: In function 'ms_conn_sock_init':
clients/ms_conn.c:541:7: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_conn.c: In function 'ms_conn_close':
clients/ms_conn.c:671:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_conn.c: In function 'ms_reconn_socks':
clients/ms_conn.c:1016:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_conn.c: In function 'ms_sort_udp_packet':
clients/ms_conn.c:1459:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_conn.c:1493:12: error: redefinition of 'i'
clients/ms_conn.c:1459:12: note: previous definition of 'i' was here
clients/ms_conn.c:1493:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_conn.c:1431:12: warning: variable 'req_id' set but not used [-Wunused-but-set-variable]
clients/ms_conn.c: In function 'ms_ascii_complete_nread':
clients/ms_conn.c:1884:7: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_conn.c: In function 'ms_build_ascii_write_buf_mlget':
clients/ms_conn.c:3084:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_conn.c: In function 'ms_mcd_mlget':
clients/ms_conn.c:3157:3: error: 'for' loop initial declarations are only allowed in C99 mode
clients/ms_conn.c: In function 'ms_build_bin_write_buf_mlget':
clients/ms_conn.c:3401:3: error: 'for' loop initial declarations are only allowed in C99 mode
make[1]: *** [clients/ms_conn.o] Error 1
make[1]: Leaving directory `/dev/shm/extras/BUILD/libmemcached-1.0.15'
make: *** [all] Error 2

Revision history for this message
Brian Aker (brianaker) wrote : Re: [Bug 1094414] [NEW] build need C99 mode
Download full text (11.5 KiB)

What platform was this? In config.log you should see a test for std=c99 that passes.

On Dec 28, 2012, at 11:35 PM, Remi Collet <email address hidden> wrote:

> Public bug reported:
>
> Adding -std=c99 to CFLAGS is a woraround
>
>
> During build
>
> CC clients/ms_stats.o
> clients/ms_stats.c: In function 'ms_get_events':
> clients/ms_stats.c:127:3: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_stats.c:127:3: note: use option -std=c99 or -std=gnu99 to compile your code
> clients/ms_stats.c: In function 'ms_dump_stats':
> clients/ms_stats.c:148:3: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_stats.c:177:12: error: conflicting types for 'i'
> clients/ms_stats.c:148:17: note: previous definition of 'i' was here
> clients/ms_stats.c:177:3: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_stats.c:189:12: error: redefinition of 'i'
> clients/ms_stats.c:177:12: note: previous definition of 'i' was here
> clients/ms_stats.c:189:3: error: 'for' loop initial declarations are only allowed in C99 mode
> make[1]: *** [clients/ms_stats.o] Error 1
> make[1]: *** Waiting for unfinished jobs....
> clients/memaslap.c: In function 'ms_help_command':
> clients/memaslap.c:136:3: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/memaslap.c:136:3: note: use option -std=c99 or -std=gnu99 to compile your code
> make[1]: *** [clients/memaslap.o] Error 1
> clients/ms_setting.c: In function 'ms_get_serverlist':
> clients/ms_setting.c:168:3: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:168:3: note: use option -std=c99 or -std=gnu99 to compile your code
> clients/ms_setting.c: In function 'ms_calc_avg_size':
> clients/ms_setting.c:546:3: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:556:12: error: redefinition of 'j'
> clients/ms_setting.c:546:12: note: previous definition of 'j' was here
> clients/ms_setting.c:556:3: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c: In function 'ms_build_distr':
> clients/ms_setting.c:663:3: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:665:5: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:673:12: error: redefinition of 'm'
> clients/ms_setting.c:663:12: note: previous definition of 'm' was here
> clients/ms_setting.c:673:3: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:675:5: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:695:7: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:723:7: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:735:5: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:742:5: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/ms_setting.c:744:7: error: 'for' loop initial declarations are only allowed in C99 mode
> clients/m...

Revision history for this message
Remi Collet (remicollet) wrote :

Platform: Fedora 17, gcc (GCC) 4.7.2 20120921 (Red Hat 4.7.2-2)

From configure output:
checking whether C compiler accepts -std=c99... no

From config.log
configure:23611: checking whether C compiler accepts -std=c99
configure:23630: gcc -c -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector --param=ssp-buffer-size=4 -m64 -mtune=generic -std=c99 -Werror -std=c99 conftest.c >&5
conftest.c:51:0: error: "HAVE_LIBMEMCACHED" redefined [-Werror]
conftest.c:45:0: note: this is the location of the previous definition
cc1: all warnings being treated as errors
configure:23630: $? = 1

Revision history for this message
Brian Aker (brianaker) wrote :

This has been fixed in trunk I believe.

Changed in libmemcached:
status: New → Incomplete
milestone: none → 1.0.16
Brian Aker (brianaker)
Changed in libmemcached:
status: Incomplete → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.