diff options
author | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2015-01-27 18:07:50 +0000 |
---|---|---|
committer | Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at> | 2015-01-27 18:07:50 +0000 |
commit | dc627931848ed6af40be4f7d5bdb8e33d28b8333 (patch) | |
tree | 8a458f2a546da385a13b3662586000286e3aa02d /dmi.c | |
parent | 0cbd8c2558209432a0f51522cd2adffc59785dd0 (diff) | |
download | ast2050-flashrom-dc627931848ed6af40be4f7d5bdb8e33d28b8333.zip ast2050-flashrom-dc627931848ed6af40be4f7d5bdb8e33d28b8333.tar.gz |
Make strnlen() visible in old versions of glibc
Strnlen() is in POSIX 2008 but was a GNU extension up to glibc 2.10
requiring to define _GNU_SOURCE. This fixes compilation on CentOS 4.9.
Also, move our implementation of strnlen() that was added to support
DJGPP to helpers.c.
Corresponding to flashrom svn r1878.
Signed-off-by: Stefan Tauner <stefan.tauner@alumni.tuwien.ac.at>
Acked-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Diffstat (limited to 'dmi.c')
-rw-r--r-- | dmi.c | 17 |
1 files changed, 7 insertions, 10 deletions
@@ -21,6 +21,13 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +/* strnlen is in POSIX but was a GNU extension up to glibc 2.10 */ +#if (__GLIBC__ == 2 && __GLIBC_MINOR__ < 10) || __GLIBC__ < 2 +#define _GNU_SOURCE +#else +#define _POSIX_C_SOURCE 200809L +#endif + #include <strings.h> #include <string.h> #include <ctype.h> @@ -86,16 +93,6 @@ static const struct { }; #if CONFIG_INTERNAL_DMI == 1 -#ifdef __DJGPP__ /* There is no strnlen in DJGPP. FIXME: Move this to a common utility file. */ -size_t strnlen(const char *str, size_t n) -{ - size_t i; - for (i = 0; i < n && str[i] != '\0'; i++) - ; - return i; -} -#endif - static bool dmi_checksum(const uint8_t * const buf, size_t len) { uint8_t sum = 0; |