From ba0178b105de7dc777a363c8f1d9e0849aa2370e Mon Sep 17 00:00:00 2001 From: Inkyun Kil Date: Wed, 14 Dec 2016 16:52:32 +0900 Subject: [PATCH] Fix build error for upgrading toolchain 'readdir_r' is deprecated since version 2.24 glibc. By upgrading TOOLCHAIN for platform, it should be replaced by 'readdir'. Different semantics for inline functions While -std=gnu89 employs the GNU89 inline semantics, -std=gnu11 uses the C99 inline semantics. For further informaion, please refer to 'https://gcc.gnu.org/gcc-5/porting_to.html' Remove unused function. Change-Id: I0891770a16d91ee1fec75e3f2c1a48cc4c5fe6e3 Signed-off-by: Inkyun Kil --- include/app_preference_internal.h | 5 ++--- preference/preference.c | 18 ++++++++---------- 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/include/app_preference_internal.h b/include/app_preference_internal.h index 8cafdcb..478efb7 100644 --- a/include/app_preference_internal.h +++ b/include/app_preference_internal.h @@ -139,9 +139,8 @@ int _preference_get_key_path(keynode_t *keynode, char *path); int _preference_get_key(keynode_t *keynode); int _preference_keynode_set_keyname(keynode_t *keynode, const char *keyname); -inline void _preference_keynode_set_null(keynode_t *keynode); -inline keynode_t *_preference_keynode_new(void); -inline void _preference_keynode_free(keynode_t *keynode); +__attribute__ ((gnu_inline)) inline keynode_t *_preference_keynode_new(void); +__attribute__ ((gnu_inline)) inline void _preference_keynode_free(keynode_t *keynode); #ifdef __cplusplus diff --git a/preference/preference.c b/preference/preference.c index 4e26dca..558faf4 100755 --- a/preference/preference.c +++ b/preference/preference.c @@ -139,7 +139,7 @@ static inline void _preference_keynode_set_value_string(keynode_t *keynode, cons keynode->value.s = strdup(value); } -inline keynode_t *_preference_keynode_new(void) +__attribute__ ((gnu_inline)) inline keynode_t *_preference_keynode_new(void) { keynode_t *keynode; keynode = calloc(1, sizeof(keynode_t)); @@ -147,7 +147,7 @@ inline keynode_t *_preference_keynode_new(void) return keynode; } -inline void _preference_keynode_free(keynode_t *keynode) +__attribute__ ((gnu_inline)) inline void _preference_keynode_free(keynode_t *keynode) { if (keynode) { if (keynode->keyname) @@ -1307,8 +1307,7 @@ API int preference_remove_all(void) int err_retry = PREFERENCE_ERROR_RETRY_CNT; int func_ret = PREFERENCE_ERROR_NONE; DIR *dir; - struct dirent dent; - struct dirent *result = NULL; + struct dirent *dent = NULL; char *pref_dir_path = NULL; char err_buf[ERR_LEN] = {0,}; const char *entry; @@ -1337,8 +1336,8 @@ API int preference_remove_all(void) return PREFERENCE_ERROR_OUT_OF_MEMORY; } - while (readdir_r(dir, &dent, &result) == 0 && result != NULL) { - entry = dent.d_name; + while ((dent = readdir(dir)) != NULL) { + entry = dent->d_name; if (entry[0] == '.') continue; @@ -1521,8 +1520,7 @@ API int preference_foreach_item(preference_item_cb callback, void *user_data) { int ret = 0; DIR *dir; - struct dirent dent; - struct dirent *result = NULL; + struct dirent *dent = NULL; char *pref_dir_path = NULL; char err_buf[ERR_LEN] = {0,}; const char *entry; @@ -1546,8 +1544,8 @@ API int preference_foreach_item(preference_item_cb callback, void *user_data) return PREFERENCE_ERROR_IO_ERROR; } - while (readdir_r(dir, &dent, &result) == 0 && result != NULL) { - entry = dent.d_name; + while ((dent = readdir(dir)) != NULL) { + entry = dent->d_name; if (entry[0] == '.') continue; -- 2.7.4