Created attachment 948969 [details] Configure and compile log for OSX 10.8 Description of problem: When compiling GlusterFS (git master head) on OSX 10.8, many warnings show up which aren't seem on EL6. Most of these warnings are likely of little consequence, but some may be signs of potential problems. We should probably look over all of these warnings, and resolve them (in order of importance). Version-Release number of selected component (if applicable): GlusterFS git master branch head, as of Tue 21st October 2014. Full compile and make -j3 log is attached to this BZ, and I'll also cut-n-paste the more obvious bits below for easier initial look-over. Compile options were: $ ./configure --prefix=/usr/local/Cellar/glusterfs/HEAD --with-mountutildir=/usr/local/Cellar/glusterfs/HEAD/sbin --with-initdir=/usr/local/etc --with-launchddir=/usr/local/Cellar/glusterfs/HEAD/Library/LaunchDaemons/ --disable-systemtap --enable-glupy ************************************************************************* CC libglusterfs_la-common-utils.lo common-utils.c:70:9: warning: 'MD5' is deprecated [-Wdeprecated-declarations] MD5(data, len, scratch); ^ /usr/include/openssl/md5.h:116:16: note: 'MD5' declared here unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ 1 warning generated. CC libglusterfs_la-checksum.lo checksum.c:64:9: warning: 'MD5' is deprecated [-Wdeprecated-declarations] MD5(data, len, md5); ^ /usr/include/openssl/md5.h:116:16: note: 'MD5' declared here unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ 1 warning generated. CC libglusterfs_la-syncop.lo syncop.c:298:13: warning: 'swapcontext' is deprecated: first deprecated in OS X 10.6 [-Wdeprecated-declarations] if (swapcontext (&task->ctx, &task->proc->sched) < 0) { ^ /usr/include/ucontext.h:40:6: note: 'swapcontext' declared here int swapcontext(ucontext_t * __restrict, const ucontext_t * __restrict) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0); ^ syncop.c:434:13: warning: 'getcontext' is deprecated: first deprecated in OS X 10.6 [-Wdeprecated-declarations] if (getcontext (&newtask->ctx) < 0) { ^ /usr/include/ucontext.h:37:6: note: 'getcontext' declared here int getcontext(ucontext_t *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0); ^ syncop.c:451:9: warning: 'makecontext' is deprecated: first deprecated in OS X 10.6 [-Wdeprecated-declarations] makecontext (&newtask->ctx, (void (*)(void)) synctask_wrap, 2, newtask); ^ /usr/include/ucontext.h:38:6: note: 'makecontext' declared here void makecontext(ucontext_t *, void (*)(), int, ...) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0); ^ syncop.c:580:13: warning: 'swapcontext' is deprecated: first deprecated in OS X 10.6 [-Wdeprecated-declarations] if (swapcontext (&task->proc->sched, &task->ctx) < 0) { ^ /usr/include/ucontext.h:40:6: note: 'swapcontext' declared here int swapcontext(ucontext_t * __restrict, const ucontext_t * __restrict) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0); ^ 4 warnings generated. CC libglusterfs_la-event-epoll.lo CC libglusterfs_la-execinfo.lo CCLD libglusterfs.la /usr/bin/ranlib: file: .libs/libglusterfs.a(libglusterfs_la-event-epoll.o) has no symbols /usr/bin/ranlib: file: .libs/libglusterfs.a(libglusterfs_la-execinfo.o) has no symbols ranlib: file: .libs/libglusterfs.a(libglusterfs_la-event-epoll.o) has no symbols ranlib: file: .libs/libglusterfs.a(libglusterfs_la-execinfo.o) has no symbols Making all in src CC rpcsvc.lo rpcsvc.c:943:54: warning: format specifies type 'unsigned int' but the argument has type 'u_long' (aka 'unsigned long') [-Wformat] "xid (%" GF_PRI_RPC_XID ")", xid); ^~~ ../../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ rpcsvc.c:943:54: warning: format specifies type 'unsigned int' but the argument has type 'u_long' (aka 'unsigned long') [-Wformat] "xid (%" GF_PRI_RPC_XID ")", xid); ~~~ ^~~ ../../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ 2 warnings generated. Making all in src CC socket.lo socket.c:186:19: warning: 'ERR_get_error' is deprecated [-Wdeprecated-declarations] while ((errnum = ERR_get_error())) { ^ /usr/include/openssl/err.h:266:15: note: 'ERR_get_error' declared here unsigned long ERR_get_error(void) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:187:3: warning: 'ERR_error_string' is deprecated [-Wdeprecated-declarations] ERR_error_string(errnum,errbuf); ^ /usr/include/openssl/err.h:279:7: note: 'ERR_error_string' declared here char *ERR_error_string(unsigned long e,char *buf) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:224:11: warning: 'SSL_get_error' is deprecated [-Wdeprecated-declarations] switch (SSL_get_error(priv->ssl_ssl,r)) { ^ /usr/include/openssl/ssl.h:1501:5: note: 'SSL_get_error' declared here int SSL_get_error(const SSL *s,int ret_code) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:274:18: warning: 'SSL_new' is deprecated [-Wdeprecated-declarations] priv->ssl_ssl = SSL_new(priv->ssl_ctx); ^ /usr/include/openssl/ssl.h:1481:7: note: 'SSL_new' declared here SSL * SSL_new(SSL_CTX *ctx) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:280:19: warning: 'BIO_new_socket' is deprecated [-Wdeprecated-declarations] priv->ssl_sbio = BIO_new_socket(priv->sock,BIO_NOCLOSE); ^ /usr/include/openssl/bio.h:685:6: note: 'BIO_new_socket' declared here BIO *BIO_new_socket(int sock, int close_flag) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:286:2: warning: 'SSL_set_bio' is deprecated [-Wdeprecated-declarations] SSL_set_bio(priv->ssl_ssl,priv->ssl_sbio,priv->ssl_sbio); ^ /usr/include/openssl/ssl.h:1375:6: note: 'SSL_set_bio' declared here void SSL_set_bio(SSL *s, BIO *rbio,BIO *wbio) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:289:9: warning: 'SSL_accept' is deprecated [-Wdeprecated-declarations] ret = ssl_accept_one(this); ^ socket.c:259:68: note: expanded from macro 'ssl_accept_one' #define ssl_accept_one(t) ssl_do((t),NULL,0,(SSL_trinary_func *)SSL_accept) ^ /usr/include/openssl/ssl.h:1491:6: note: 'SSL_accept' declared here int SSL_accept(SSL *ssl) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:292:9: warning: 'SSL_connect' is deprecated [-Wdeprecated-declarations] ret = ssl_connect_one(this); ^ socket.c:258:68: note: expanded from macro 'ssl_connect_one' #define ssl_connect_one(t) ssl_do((t),NULL,0,(SSL_trinary_func *)SSL_connect) ^ /usr/include/openssl/ssl.h:1492:6: note: 'SSL_connect' declared here int SSL_connect(SSL *ssl) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:301:6: warning: 'SSL_get_verify_result' is deprecated [-Wdeprecated-declarations] if (SSL_get_verify_result(priv->ssl_ssl) != X509_V_OK) { ^ /usr/include/openssl/ssl.h:1584:6: note: 'SSL_get_verify_result' declared here long SSL_get_verify_result(const SSL *ssl) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:304:9: warning: 'SSL_get_peer_certificate' is deprecated [-Wdeprecated-declarations] peer = SSL_get_peer_certificate(priv->ssl_ssl); ^ /usr/include/openssl/ssl.h:1450:8: note: 'SSL_get_peer_certificate' declared here X509 * SSL_get_peer_certificate(const SSL *s) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:310:2: warning: 'X509_NAME_get_text_by_NID' is deprecated [-Wdeprecated-declarations] X509_NAME_get_text_by_NID(X509_get_subject_name(peer), ^ /usr/include/openssl/x509.h:1098:7: note: 'X509_NAME_get_text_by_NID' declared here int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, ^ socket.c:310:28: warning: 'X509_get_subject_name' is deprecated [-Wdeprecated-declarations] X509_NAME_get_text_by_NID(X509_get_subject_name(peer), ^ /usr/include/openssl/x509.h:1013:13: note: 'X509_get_subject_name' declared here X509_NAME * X509_get_subject_name(X509 *a) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:321:2: warning: 'SSL_free' is deprecated [-Wdeprecated-declarations] SSL_free(priv->ssl_ssl); ^ /usr/include/openssl/ssl.h:1490:6: note: 'SSL_free' declared here void SSL_free(SSL *ssl) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:331:9: warning: 'SSL_shutdown' is deprecated [-Wdeprecated-declarations] SSL_shutdown(priv->ssl_ssl); ^ /usr/include/openssl/ssl.h:1532:5: note: 'SSL_shutdown' declared here int SSL_shutdown(SSL *s) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:332:9: warning: 'SSL_clear' is deprecated [-Wdeprecated-declarations] SSL_clear(priv->ssl_ssl); ^ /usr/include/openssl/ssl.h:1353:5: note: 'SSL_clear' declared here int SSL_clear(SSL *s) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:333:9: warning: 'SSL_free' is deprecated [-Wdeprecated-declarations] SSL_free(priv->ssl_ssl); ^ /usr/include/openssl/ssl.h:1490:6: note: 'SSL_free' declared here void SSL_free(SSL *ssl) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:350:9: warning: 'SSL_read' is deprecated [-Wdeprecated-declarations] ret = ssl_read_one (this, opvector->iov_base, opvector->iov_len); ^ socket.c:260:69: note: expanded from macro 'ssl_read_one' #define ssl_read_one(t,b,l) ssl_do((t),(b),(l),(SSL_trinary_func *)SSL_read) ^ /usr/include/openssl/ssl.h:1493:6: note: 'SSL_read' declared here int SSL_read(SSL *ssl,void *buf,int num) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:499:11: warning: 'SSL_write' is deprecated [-Wdeprecated-declarations] ret = ssl_write_one(this, ^ socket.c:261:69: note: expanded from macro 'ssl_write_one' #define ssl_write_one(t,b,l) ssl_do((t),(b),(l),(SSL_trinary_func *)SSL_write) ^ /usr/include/openssl/ssl.h:1495:6: note: 'SSL_write' declared here int SSL_write(SSL *ssl,const void *buf,int num) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:1758:35: warning: implicit conversion from enumeration type 'sp_rpcfrag_vectored_reply_accepted_state_t' to different enumeration type 'sp_rpcfrag_vectored_reply_status_state_t' [-Wenum-conversion] = SP_STATE_ACCEPTED_REPLY_INIT; ~ ^~~~~~~~~~~~~~~~~~~~~~~~~~~~ socket.c:1889:41: warning: comparison of constant 42 with expression of type 'msg_type_t' (aka 'enum msg_type') is always false [-Wtautological-constant-out-of-range-compare] } else if (in->msg_type == GF_UNIVERSAL_ANSWER) { ~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~ socket.c:1907:39: warning: implicit conversion from enumeration type 'sp_rpcrecord_state_t' to different enumeration type 'sp_rpcfrag_state_t' [-Wenum-conversion] frag->state = SP_STATE_NADA; ~ ^~~~~~~~~~~~~ socket.c:2230:41: warning: implicit conversion from enumeration type 'glusterfs_event_t' to different enumeration type 'rpc_transport_event_t' [-Wenum-conversion] event = GF_EVENT_POLLERR; ~ ^~~~~~~~~~~~~~~~ socket.c:3773:3: warning: 'SSL_library_init' is deprecated [-Wdeprecated-declarations] SSL_library_init(); ^ /usr/include/openssl/ssl.h:1553:5: note: 'SSL_library_init' declared here int SSL_library_init(void ) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:3774:3: warning: 'SSL_load_error_strings' is deprecated [-Wdeprecated-declarations] SSL_load_error_strings(); ^ /usr/include/openssl/ssl.h:1416:6: note: 'SSL_load_error_strings' declared here void SSL_load_error_strings(void ) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:3775:34: warning: 'TLSv1_method' is deprecated [-Wdeprecated-declarations] priv->ssl_meth = (SSL_METHOD *)TLSv1_method(); ^ /usr/include/openssl/ssl.h:1519:13: note: 'TLSv1_method' declared here SSL_METHOD *TLSv1_method(void) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; /* TLSv1.0 */ ^ socket.c:3776:19: warning: 'SSL_CTX_new' is deprecated [-Wdeprecated-declarations] priv->ssl_ctx = SSL_CTX_new(priv->ssl_meth); ^ /usr/include/openssl/ssl.h:1346:10: note: 'SSL_CTX_new' declared here SSL_CTX *SSL_CTX_new(SSL_METHOD *meth) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:3778:21: warning: 'SSL_CTX_set_cipher_list' is deprecated [-Wdeprecated-declarations] if (SSL_CTX_set_cipher_list(priv->ssl_ctx, cipher_list) == 0) { ^ /usr/include/openssl/ssl.h:1345:5: note: 'SSL_CTX_set_cipher_list' declared here int SSL_CTX_set_cipher_list(SSL_CTX *,const char *str) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:3784:8: warning: 'SSL_CTX_use_certificate_chain_file' is deprecated [-Wdeprecated-declarations] if (!SSL_CTX_use_certificate_chain_file(priv->ssl_ctx, ^ /usr/include/openssl/ssl.h:1403:5: note: 'SSL_CTX_use_certificate_chain_file' declared here int SSL_CTX_use_certificate_chain_file(SSL_CTX *ctx, const char *file) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; /* PEM type */ ^ socket.c:3791:8: warning: 'SSL_CTX_use_PrivateKey_file' is deprecated [-Wdeprecated-declarations] if (!SSL_CTX_use_PrivateKey_file(priv->ssl_ctx, ^ /usr/include/openssl/ssl.h:1401:5: note: 'SSL_CTX_use_PrivateKey_file' declared here int SSL_CTX_use_PrivateKey_file(SSL_CTX *ctx, const char *file, int type) DEPRECATED_IN_MAC_OS_X_VERSION_10_7_AND_LATER; ^ socket.c:3799:8: warning: 'SSL_CTX_load_verify_locations' is deprecated [-Wdeprecated-declarations] if (!SSL_CTX_load_verify_locations(priv->ssl_ctx, ^ /usr/include/openssl/ssl.h:1571:5: note: 'SSL_CTX_load_verify_locations' declared here int SSL_CTX_load_verify_locations(SSL_CTX *ctx, const char *CAfile, ^ socket.c:3811:3: warning: 'SSL_CTX_set_session_id_context' is deprecated [-Wdeprecated-declarations] SSL_CTX_set_session_id_context(priv->ssl_ctx, ^ /usr/include/openssl/ssl.h:1478:5: note: 'SSL_CTX_set_session_id_context' declared here int SSL_CTX_set_session_id_context(SSL_CTX *ctx,const unsigned char *sid_ctx, ^ socket.c:3815:3: warning: 'SSL_CTX_set_verify' is deprecated [-Wdeprecated-declarations] SSL_CTX_set_verify(priv->ssl_ctx,SSL_VERIFY_PEER,0); ^ /usr/include/openssl/ssl.h:1458:6: note: 'SSL_CTX_set_verify' declared here void SSL_CTX_set_verify(SSL_CTX *ctx,int mode, ^ 32 warnings generated. CCLD libgfapi.la *** Warning: Linking the shared library libgfapi.la against the *** static library ../../contrib/argp-standalone/libargp.a is not portable! CCLD api.la CC afr-self-heald.lo afr-self-heald.c:1198:25: warning: comparison of constant -1 with expression of type 'unsigned char' is always false [-Wtautological-constant-out-of-range-compare] if (priv->child_up[i] == -1) ~~~~~~~~~~~~~~~~~ ^ ~~ 1 warning generated. CC dht-common.lo dht-common.c:1833:44: warning: comparison of constant 2 with expression of type 'gf_boolean_t' (aka 'enum _gf_boolean') is always false [-Wtautological-constant-out-of-range-compare] if ((conf->search_unhashed == GF_DHT_LOOKUP_UNHASHED_AUTO) && ~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ dht-common.c:3812:43: warning: comparison of constant 2 with expression of type 'gf_boolean_t' (aka 'enum _gf_boolean') is always false [-Wtautological-constant-out-of-range-compare] if (conf->search_unhashed == GF_DHT_LOOKUP_UNHASHED_AUTO) { ~~~~~~~~~~~~~~~~~~~~~ ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~ CC ec-common.lo ec-common.c:1068:13: warning: variable 'lock' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] if ((ctx != NULL) && !list_empty(&ctx->inode_locks)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ec-common.c:1079:13: note: uninitialized use occurs here if (lock != NULL) ^~~~ ec-common.c:1068:9: note: remove the 'if' if its condition is always true if ((ctx != NULL) && !list_empty(&ctx->inode_locks)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ec-common.c:1068:13: warning: variable 'lock' is used uninitialized whenever '&&' condition is false [-Wsometimes-uninitialized] if ((ctx != NULL) && !list_empty(&ctx->inode_locks)) ^~~~~~~~~~~~~ ec-common.c:1079:13: note: uninitialized use occurs here if (lock != NULL) ^~~~ ec-common.c:1068:13: note: remove the '&&' if its condition is always true if ((ctx != NULL) && !list_empty(&ctx->inode_locks)) ^~~~~~~~~~~~~~~~ ec-common.c:999:21: note: initialize the variable 'lock' to silence this warning ec_lock_t * lock; ^ = NULL 2 warnings generated. CC ec-combine.lo ec-combine.c:79:20: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_ino, src->ia_ino, dst->ia_nlink, src->ia_nlink, ^~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ ec-combine.c:79:33: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_ino, src->ia_ino, dst->ia_nlink, src->ia_nlink, ^~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ ec-combine.c:81:20: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_rdev, src->ia_rdev, dst->ia_size, src->ia_size, ^~~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ ec-combine.c:81:34: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_rdev, src->ia_rdev, dst->ia_size, src->ia_size, ^~~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ ec-combine.c:81:48: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_rdev, src->ia_rdev, dst->ia_size, src->ia_size, ^~~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ ec-combine.c:81:62: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_rdev, src->ia_rdev, dst->ia_size, src->ia_size, ^~~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ ec-combine.c:79:20: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_ino, src->ia_ino, dst->ia_nlink, src->ia_nlink, ^~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ ec-combine.c:79:33: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_ino, src->ia_ino, dst->ia_nlink, src->ia_nlink, ^~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ ec-combine.c:81:20: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_rdev, src->ia_rdev, dst->ia_size, src->ia_size, ^~~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ ec-combine.c:81:34: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_rdev, src->ia_rdev, dst->ia_size, src->ia_size, ^~~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ ec-combine.c:81:48: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_rdev, src->ia_rdev, dst->ia_size, src->ia_size, ^~~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ ec-combine.c:81:62: warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat] dst->ia_rdev, src->ia_rdev, dst->ia_size, src->ia_size, ^~~~~~~~~~~~ ../../../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ 12 warnings generated. CC server-helpers.lo server-helpers.c:60:57: warning: passing 'gid_t [65535]' to parameter of type 'int *' converts between pointers to integer types with different sign [-Wpointer-sign] ret = getgrouplist (result->pw_name, root->gid, mygroups, &ngroups); ^~~~~~~~ /usr/include/unistd.h:688:43: note: passing argument to parameter here int getgrouplist(const char *, int, int *, int *); ^ 1 warning generated. CC barrier.lo barrier.c:356:37: warning: comparison of constant -1 with expression of type 'gf_boolean_t' (aka 'enum _gf_boolean') is always false [-Wtautological-constant-out-of-range-compare] if (barrier_enabled == -1) { ~~~~~~~~~~~~~~~ ^ ~~ 1 warning generated. CC coroutine-ucontext.lo ../../../../contrib/qemu/coroutine-ucontext.c:139:9: warning: 'getcontext' is deprecated: first deprecated in OS X 10.6 [-Wdeprecated-declarations] if (getcontext(&uc) == -1) { ^ /usr/include/ucontext.h:37:6: note: 'getcontext' declared here int getcontext(ucontext_t *) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0); ^ ../../../../contrib/qemu/coroutine-ucontext.c:159:5: warning: 'makecontext' is deprecated: first deprecated in OS X 10.6 [-Wdeprecated-declarations] makecontext(&uc, (void (*)(void))coroutine_trampoline, ^ /usr/include/ucontext.h:38:6: note: 'makecontext' declared here void makecontext(ucontext_t *, void (*)(), int, ...) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0); ^ ../../../../contrib/qemu/coroutine-ucontext.c:164:9: warning: 'swapcontext' is deprecated: first deprecated in OS X 10.6 [-Wdeprecated-declarations] swapcontext(&old_uc, &uc); ^ /usr/include/ucontext.h:40:6: note: 'swapcontext' declared here int swapcontext(ucontext_t * __restrict, const ucontext_t * __restrict) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_5, __MAC_10_6, __IPHONE_2_0, __IPHONE_2_0); ^ 3 warnings generated. CC json-lexer.lo ../../../../contrib/qemu/qobject/json-lexer.c:110:18: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] ['\\'] = IN_DQ_STRING_ESCAPE, ^~~~~~~~~~~~~~~~~~~ ../../../../contrib/qemu/qobject/json-lexer.c:108:24: note: previous initialization is here [1 ... 0xBF] = IN_DQ_STRING, ^~~~~~~~~~~~ ../../../../contrib/qemu/qobject/json-lexer.c:111:17: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] ['"'] = JSON_STRING, ^~~~~~~~~~~ ../../../../contrib/qemu/qobject/json-lexer.c:108:24: note: previous initialization is here [1 ... 0xBF] = IN_DQ_STRING, ^~~~~~~~~~~~ ../../../../contrib/qemu/qobject/json-lexer.c:150:18: warning: initializer overrides prior initialization of this subobject [-Winitializer-overrides] ['\\'] = IN_SQ_STRING_ESCAPE, ^~~~~~~~~~~~~~~~~~~ [tonnes of repeats here snipped due to 64k comment max length] 80 warnings generated. CC snapview-server-helpers.lo snapview-server-helpers.c:123:63: warning: too many arguments in call to 'svs_inode_new' svs_inode = svs_inode_new (this, inode); ~~~~~~~~~~~~~ ^ snapview-server-helpers.c:246:38: warning: too many arguments in call to 'svs_fd_new' svs_fd = svs_fd_new (this, fd); ~~~~~~~~~~ ^ 2 warnings generated. CC glusterd_la-glusterd-handler.lo glusterd-handler.c:667:55: warning: implicit conversion from enumeration type 'enum glusterd_op_sm_event_type_' to different enumeration type 'glusterd_op_t' (aka 'enum glusterd_op_') [-Wenum-conversion] glusterd_op_t op = GD_OP_EVENT_LOCK; ~~ ^~~~~~~~~~~~~~~~ CC glusterd_la-glusterd-utils.lo glusterd-utils.c:5402:47: warning: incompatible pointer types passing 'time_t *' (aka 'long *') to parameter of type 'int64_t *' (aka 'long long *') [-Wincompatible-pointer-types] ret = dict_get_int64 (peer_data, buf, &snap->time_stamp); ^~~~~~~~~~~~~~~~~ ../../../../libglusterfs/src/dict.h:203:69: note: passing argument to parameter 'val' here GF_MUST_CHECK int dict_get_int64 (dict_t *this, char *key, int64_t *val); ^ 1 warning generated. 1 warning generated. CC glusterd_la-glusterd-snapshot.lo glusterd-snapshot.c:1090:20: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if ((value < 0) || (value > max_limit)) { ~~~~~ ^ ~ glusterd-snapshot.c:1174:41: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if ((soft_limit < 0) || (soft_limit > max_limit)) { ~~~~~~~~~~ ^ ~ glusterd-snapshot.c:6604:60: warning: format specifies type 'long' but the argument has type 'int64_t' (aka 'long long') [-Wformat] snprintf (key, sizeof (key), "volname%ld", i); ~~~ ^ %lld /usr/include/secure/_stdio.h:56:62: note: expanded from macro 'snprintf' __builtin___snprintf_chk (str, len, 0, __darwin_obsz(str), __VA_ARGS__) ^ 3 warnings generated. CC cli.o cli.c:363:38: warning: comparison of constant -1 with expression of type 'gf_loglevel_t' is always false [-Wtautological-constant-out-of-range-compare] if (state->log_level == -1) ~~~~~~~~~~~~~~~~ ^ ~~ 1 warning generated. CC cli-cmd-parser.o cli-cmd-parser.c:2445:46: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if (blk_size < 0) ~~~~~~~~ ^ ~ cli-cmd-parser.c:2460:43: warning: comparison of unsigned expression < 0 is always false [-Wtautological-compare] if (count < 0) ~~~~~ ^ ~ 2 warnings generated. CCLD glfsheal *** Warning: Linking the executable glfsheal against the loadable module *** afr.so is not portable! *** Warning: lib afr.so is a module, not a shared library Making all in contrib/umountd CC umountd-umountd.o umountd.c:54:53: warning: data argument not used by format string [-Wformat-extra-args] "Cannot access %s\n", path, strerror (errno)); ~~~~~~~~~~~~~~~~~~~~ ^ ../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ umountd.c:54:53: warning: data argument not used by format string [-Wformat-extra-args] "Cannot access %s\n", path, strerror (errno)); ~~~~~~~~~~~~~~~~~~~~ ^ ../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ umountd.c:67:55: warning: data argument not used by format string [-Wformat-extra-args] "Cannot access %s\n", parent, strerror (errno)); ~~~~~~~~~~~~~~~~~~~~ ^ ../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ umountd.c:67:55: warning: data argument not used by format string [-Wformat-extra-args] "Cannot access %s\n", parent, strerror (errno)); ~~~~~~~~~~~~~~~~~~~~ ^ ../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ umountd.c:159:39: warning: data argument not used by format string [-Wformat-extra-args] path, strerror (errno)); ^ ../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ umountd.c:159:39: warning: data argument not used by format string [-Wformat-extra-args] path, strerror (errno)); ^ ../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ umountd.c:169:41: warning: format specifies type 'long long' but the argument has type 'dev_t' (aka 'int') [-Wformat] dev, stbuf.st_dev, path); ^~~ ../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ umountd.c:169:46: warning: format specifies type 'long long' but the argument has type 'dev_t' (aka 'int') [-Wformat] dev, stbuf.st_dev, path); ^~~~~~~~~~~~ ../../libglusterfs/src/logging.h:260:27: note: expanded from macro 'gf_log' FMT_WARN (fmt); \ ^ ../../libglusterfs/src/logging.h:211:46: note: expanded from macro 'FMT_WARN' #define FMT_WARN(fmt...) do { if (0) printf (fmt); } while (0) ^ umountd.c:169:41: warning: format specifies type 'long long' but the argument has type 'dev_t' (aka 'int') [-Wformat] dev, stbuf.st_dev, path); ^~~ ../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ umountd.c:169:46: warning: format specifies type 'long long' but the argument has type 'dev_t' (aka 'int') [-Wformat] dev, stbuf.st_dev, path); ^~~~~~~~~~~~ ../../libglusterfs/src/logging.h:262:34: note: expanded from macro 'gf_log' levl, ##fmt); \ ^ umountd.c:240:13: warning: 'daemon' is deprecated: first deprecated in OS X 10.5 [-Wdeprecated-declarations] if (daemon (0, 0) != 0) ^ /usr/include/stdlib.h:292:6: note: 'daemon' declared here int daemon(int, int) __DARWIN_1050(daemon) __OSX_AVAILABLE_BUT_DEPRECATED(__MAC_10_0, __MAC_10_5, __IPHONE_2_0, __IPHONE_2_0); ^ 11 warnings generated. CCLD umountd
Many of them are related/duplicates and can be removed by adding -Wno-deprecated-declarations to the clang setup in configure.ac: diff --git a/configure.ac b/configure.ac index 583f500..c13f93e 100644 --- a/configure.ac +++ b/configure.ac @@ -798,7 +798,7 @@ AC_COMPILE_IFELSE( AC_MSG_RESULT([$CLANG]) if test "x$CLANG" = "xyes"; then - GF_COMPILER_FLAGS="-Wno-gnu" + GF_COMPILER_FLAGS="-Wno-gnu -Wno-deprecated-declarations" fi if test "x$ac_cv_header_execinfo_h" = "xno"; then It will hide that some APIs is deprecated (ucontext, MD5) on OS X, but until there is an alternative, it's noise.
Ahhh cool. Do you reckon we should make that an OSX specific thing (in configure.ac), or add it for everything using clang?
There was a reason behind having "warnings" - is for my own benefit as a reminder to get them fixed, if we turn them off - they will potentially even might mask potential bugs. The real reason for so many warnings is gcc which is perhaps blatantly ignorant of some of those things ec-common.c:1068:13: warning: variable 'lock' is used uninitialized whenever 'if' condition is false [-Wsometimes-uninitialized] ^^ this is a potential bug on a distributed system. Realistically we have enough bugs in OSX functionality alone rather than making compilation look beautiful, i think its okay to have these "warnings" and let people open Bugzilla for each one of them. NOTE: If our SSL code was modular enough we could have just did '--disable-ssl' on OSX.
Only disable warning where it is a problem. I do agree, that "just" hiding warnings is not the right way, but I would rather hide the "innocent" ones to be sure that we spot the bad ones (like the one you points out). Yes modulizing/wrap ucontext and SSL stuff would mean we only see the warning one time instead of on every usage, would prob. be a cleaner solution. It would cost an extra function call. The MD5 should be very easy to replace with the CC_MD5 from CommonCrypt, but I have not spotted replacements for the SSL methods.
As a side thought, if we could replace MD5 with something "better" that would be good. Aside from the general security problems with it, MD5 isn't FIPS compliant so is probably a blocker for usage in FIPS compliant environments.
(In reply to Justin Clift from comment #5) > As a side thought, if we could replace MD5 with something "better" that > would be good. Aside from the general security problems with it, MD5 isn't > FIPS compliant so is probably a blocker for usage in FIPS compliant > environments. Yes that would be another bug :-)
REVIEW: http://review.gluster.org/9520 (Fixing compiler warnings on OSX: - Ignore deprecated APIs warning on OSX:) posted (#1) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9520 (Fixing compiler warnings on OSX: - Ignore deprecated APIs warning on OSX) posted (#2) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9522 (Fix compiler warnings on OSX - Tautologicals) posted (#1) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9545 (Fix clang warnings on OS X: - Wrong format spec) posted (#1) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9549 (Fix clang warnings: Code should be functional unchanged.) posted (#1) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9549 (Fix clang warnings: Code should be functional unchanged.) posted (#2) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9549 (Fix clang warnings: Code should be functional unchanged.) posted (#3) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9549 (Fix clang warnings: Code should be functional unchanged.) posted (#4) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9549 (Fix clang warnings: Code should be functional unchanged.) posted (#5) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9549 (Fix clang warnings: Code should be functional unchanged.) posted (#6) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9545 (Fix clang warnings on OS X: - Wrong format spec) posted (#2) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9522 (Fix compiler warnings on OSX - Tautologicals) posted (#2) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9549 (Fix clang warnings: Code should be functional unchanged.) posted (#7) for review on master by Dennis Schafroth (dennis)
REVIEW: http://review.gluster.org/9522 (Fix compiler warnings on OSX - Tautologicals) posted (#3) for review on master by Dennis Schafroth (dennis)
I see the patches didn't get the right attention then! Marking the bug back to NEW. will see if we can do anything about it.
Good for someone new to GlusterFS to pick this and fix it. Keeping this open.
*** Bug 1408784 has been marked as a duplicate of this bug. ***
This bug is moved to https://github.com/gluster/glusterfs/issues/961, and will be tracked there from now on. Visit GitHub issues URL for further details