On Wed, 2013-08-28 at 15:31 +0200, Lukas Slebodnik wrote:
+/* Endianness-compatibility for systems running older versions of glibc */
+#ifndef le32toh +#ifdef HAVE_BYTESWAP_H +# include <byteswap.h> +#endif /* HAVE_BYTESWAP_H */
+/* support RHEL5 lack of definitions */ +/* Copied from endian.h on glibc 2.15 */ +#ifdef __USE_BSD +/* Conversion interfaces. */ +# if __BYTE_ORDER == __LITTLE_ENDIAN +# define le32toh(x) (x) +# define htole32(x) (x) +# else +# define le32toh(x) __bswap_32 (x) +# define htole32(x) __bswap_32 (x) +# endif +#endif /* __USE_BSD */
+#endif /* le32toh */
If byteswap is not defined does the rest of the define work ?
In the code you replace byteswap is included unconditionally as I assume it is the file that contains __BYTE_ORDER__ , __LITTLE_ENDIAN and other definitions needed to reimplement le32toh, so the if byteswap.h is not available I guess the rest of the ifdef will just fail ?
maybe you should have instead:
#ifndef le32toh #ifndef HAVE_BYTESWAP_H #error missing le32toh and byteswap.h #else /* support RHEL5 lack of definitions */ ... ... #endif /* HAVE_BYTESWAP_H */ #endif /* le32toh */
Simo.
On (28/08/13 09:59), Simo Sorce wrote:
On Wed, 2013-08-28 at 15:31 +0200, Lukas Slebodnik wrote:
+/* Endianness-compatibility for systems running older versions of glibc */
+#ifndef le32toh +#ifdef HAVE_BYTESWAP_H +# include <byteswap.h> +#endif /* HAVE_BYTESWAP_H */
+/* support RHEL5 lack of definitions */ +/* Copied from endian.h on glibc 2.15 */ +#ifdef __USE_BSD +/* Conversion interfaces. */ +# if __BYTE_ORDER == __LITTLE_ENDIAN +# define le32toh(x) (x) +# define htole32(x) (x) +# else +# define le32toh(x) __bswap_32 (x) +# define htole32(x) __bswap_32 (x) +# endif +#endif /* __USE_BSD */
+#endif /* le32toh */
If byteswap is not defined does the rest of the define work ?
In the code you replace byteswap is included unconditionally as I assume it is the file that contains __BYTE_ORDER__ , __LITTLE_ENDIAN and other definitions needed to reimplement le32toh, so the if byteswap.h is not available I guess the rest of the ifdef will just fail ?
maybe you should have instead:
#ifndef le32toh #ifndef HAVE_BYTESWAP_H #error missing le32toh and byteswap.h #else /* support RHEL5 lack of definitions */ ... ... #endif /* HAVE_BYTESWAP_H */ #endif /* le32toh */
Changed.
I also changed patch with sss_strnlen from ++*len to (*len)++
Updated patches are attached
LS
On Wed, 2013-08-28 at 17:35 +0200, Lukas Slebodnik wrote:
On (28/08/13 09:59), Simo Sorce wrote:
On Wed, 2013-08-28 at 15:31 +0200, Lukas Slebodnik wrote:
+/* Endianness-compatibility for systems running older versions of glibc */
+#ifndef le32toh +#ifdef HAVE_BYTESWAP_H +# include <byteswap.h> +#endif /* HAVE_BYTESWAP_H */
+/* support RHEL5 lack of definitions */ +/* Copied from endian.h on glibc 2.15 */ +#ifdef __USE_BSD +/* Conversion interfaces. */ +# if __BYTE_ORDER == __LITTLE_ENDIAN +# define le32toh(x) (x) +# define htole32(x) (x) +# else +# define le32toh(x) __bswap_32 (x) +# define htole32(x) __bswap_32 (x) +# endif +#endif /* __USE_BSD */
+#endif /* le32toh */
If byteswap is not defined does the rest of the define work ?
In the code you replace byteswap is included unconditionally as I assume it is the file that contains __BYTE_ORDER__ , __LITTLE_ENDIAN and other definitions needed to reimplement le32toh, so the if byteswap.h is not available I guess the rest of the ifdef will just fail ?
maybe you should have instead:
#ifndef le32toh #ifndef HAVE_BYTESWAP_H #error missing le32toh and byteswap.h #else /* support RHEL5 lack of definitions */ ... ... #endif /* HAVE_BYTESWAP_H */ #endif /* le32toh */
Changed.
I also changed patch with sss_strnlen from ++*len to (*len)++
Updated patches are attached
Unfortunately my example code fooled you and now the code is missing #include <byteswap.h> completely, add it in the #else branch and you have my ack.
Simo.
On (28/08/13 13:11), Simo Sorce wrote:
On Wed, 2013-08-28 at 17:35 +0200, Lukas Slebodnik wrote:
On (28/08/13 09:59), Simo Sorce wrote:
On Wed, 2013-08-28 at 15:31 +0200, Lukas Slebodnik wrote:
+/* Endianness-compatibility for systems running older versions of glibc */
+#ifndef le32toh +#ifdef HAVE_BYTESWAP_H +# include <byteswap.h> +#endif /* HAVE_BYTESWAP_H */
+/* support RHEL5 lack of definitions */ +/* Copied from endian.h on glibc 2.15 */ +#ifdef __USE_BSD +/* Conversion interfaces. */ +# if __BYTE_ORDER == __LITTLE_ENDIAN +# define le32toh(x) (x) +# define htole32(x) (x) +# else +# define le32toh(x) __bswap_32 (x) +# define htole32(x) __bswap_32 (x) +# endif +#endif /* __USE_BSD */
+#endif /* le32toh */
If byteswap is not defined does the rest of the define work ?
In the code you replace byteswap is included unconditionally as I assume it is the file that contains __BYTE_ORDER__ , __LITTLE_ENDIAN and other definitions needed to reimplement le32toh, so the if byteswap.h is not available I guess the rest of the ifdef will just fail ?
maybe you should have instead:
#ifndef le32toh #ifndef HAVE_BYTESWAP_H #error missing le32toh and byteswap.h #else /* support RHEL5 lack of definitions */ ... ... #endif /* HAVE_BYTESWAP_H */ #endif /* le32toh */
Changed.
I also changed patch with sss_strnlen from ++*len to (*len)++
Updated patches are attached
Unfortunately my example code fooled you and now the code is missing #include <byteswap.h> completely, add it in the #else branch and you have my ack.
Simo.
Sure, stupid mistake.
LS
On Wed, 2013-08-28 at 19:33 +0200, Lukas Slebodnik wrote:
On (28/08/13 13:11), Simo Sorce wrote:
On Wed, 2013-08-28 at 17:35 +0200, Lukas Slebodnik wrote:
On (28/08/13 09:59), Simo Sorce wrote:
On Wed, 2013-08-28 at 15:31 +0200, Lukas Slebodnik wrote:
+/* Endianness-compatibility for systems running older versions of glibc */
+#ifndef le32toh +#ifdef HAVE_BYTESWAP_H +# include <byteswap.h> +#endif /* HAVE_BYTESWAP_H */
+/* support RHEL5 lack of definitions */ +/* Copied from endian.h on glibc 2.15 */ +#ifdef __USE_BSD +/* Conversion interfaces. */ +# if __BYTE_ORDER == __LITTLE_ENDIAN +# define le32toh(x) (x) +# define htole32(x) (x) +# else +# define le32toh(x) __bswap_32 (x) +# define htole32(x) __bswap_32 (x) +# endif +#endif /* __USE_BSD */
+#endif /* le32toh */
If byteswap is not defined does the rest of the define work ?
In the code you replace byteswap is included unconditionally as I assume it is the file that contains __BYTE_ORDER__ , __LITTLE_ENDIAN and other definitions needed to reimplement le32toh, so the if byteswap.h is not available I guess the rest of the ifdef will just fail ?
maybe you should have instead:
#ifndef le32toh #ifndef HAVE_BYTESWAP_H #error missing le32toh and byteswap.h #else /* support RHEL5 lack of definitions */ ... ... #endif /* HAVE_BYTESWAP_H */ #endif /* le32toh */
Changed.
I also changed patch with sss_strnlen from ++*len to (*len)++
Updated patches are attached
Unfortunately my example code fooled you and now the code is missing #include <byteswap.h> completely, add it in the #else branch and you have my ack.
Simo.
Sure, stupid mistake.
ACK
Simo.
On Wed, Aug 28, 2013 at 03:38:29PM -0400, Simo Sorce wrote:
On Wed, 2013-08-28 at 19:33 +0200, Lukas Slebodnik wrote:
On (28/08/13 13:11), Simo Sorce wrote:
On Wed, 2013-08-28 at 17:35 +0200, Lukas Slebodnik wrote:
On (28/08/13 09:59), Simo Sorce wrote:
On Wed, 2013-08-28 at 15:31 +0200, Lukas Slebodnik wrote:
+/* Endianness-compatibility for systems running older versions of glibc */
+#ifndef le32toh +#ifdef HAVE_BYTESWAP_H +# include <byteswap.h> +#endif /* HAVE_BYTESWAP_H */
+/* support RHEL5 lack of definitions */ +/* Copied from endian.h on glibc 2.15 */ +#ifdef __USE_BSD +/* Conversion interfaces. */ +# if __BYTE_ORDER == __LITTLE_ENDIAN +# define le32toh(x) (x) +# define htole32(x) (x) +# else +# define le32toh(x) __bswap_32 (x) +# define htole32(x) __bswap_32 (x) +# endif +#endif /* __USE_BSD */
+#endif /* le32toh */
If byteswap is not defined does the rest of the define work ?
In the code you replace byteswap is included unconditionally as I assume it is the file that contains __BYTE_ORDER__ , __LITTLE_ENDIAN and other definitions needed to reimplement le32toh, so the if byteswap.h is not available I guess the rest of the ifdef will just fail ?
maybe you should have instead:
#ifndef le32toh #ifndef HAVE_BYTESWAP_H #error missing le32toh and byteswap.h #else /* support RHEL5 lack of definitions */ ... ... #endif /* HAVE_BYTESWAP_H */ #endif /* le32toh */
Changed.
I also changed patch with sss_strnlen from ++*len to (*len)++
Updated patches are attached
Unfortunately my example code fooled you and now the code is missing #include <byteswap.h> completely, add it in the #else branch and you have my ack.
Simo.
Sure, stupid mistake.
ACK
Simo.
Pushed all to master, sssd-1-10 and sssd-1-9 (as your BSD work is done on top of sssd-1-9)
On Wed, 2013-08-28 at 15:31 +0200, Lukas Slebodnik wrote:
ehlo,
Patches are self describing.
Ack to all other patches.
Although I would prefer the form (*len) += 1; rather than ++*len; for the second patch as it is more readable in this case.
Simo.
On Wed, Aug 28, 2013 at 10:05:04AM -0400, Simo Sorce wrote:
On Wed, 2013-08-28 at 15:31 +0200, Lukas Slebodnik wrote:
ehlo,
Patches are self describing.
Ack to all other patches.
Although I would prefer the form (*len) += 1; rather than ++*len; for the second patch as it is more readable in this case.
Simo.
Yes, please.
sssd-devel@lists.fedorahosted.org