Hi Andrew, Could you pick up this? The maintainer of nilfs2 is silent, but this is obviously build error. Masahiro Yamada On Wed, Jun 5, 2019 at 2:32 PM Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> wrote: > > cpu_to_le32/le32_to_cpu is defined in include/linux/byteorder/generic.h, > which is not exported to user-space. > > UAPI headers must use the ones prefixed with double-underscore. > > Detected by compile-testing exported headers: > > ./usr/include/linux/nilfs2_ondisk.h: In function ‘nilfs_checkpoint_set_snapshot’: > ./usr/include/linux/nilfs2_ondisk.h:536:17: error: implicit declaration of function ‘cpu_to_le32’ [-Werror=implicit-function-declaration] > cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) | \ > ^ > ./usr/include/linux/nilfs2_ondisk.h:552:1: note: in expansion of macro ‘NILFS_CHECKPOINT_FNS’ > NILFS_CHECKPOINT_FNS(SNAPSHOT, snapshot) > ^~~~~~~~~~~~~~~~~~~~ > ./usr/include/linux/nilfs2_ondisk.h:536:29: error: implicit declaration of function ‘le32_to_cpu’ [-Werror=implicit-function-declaration] > cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) | \ > ^ > ./usr/include/linux/nilfs2_ondisk.h:552:1: note: in expansion of macro ‘NILFS_CHECKPOINT_FNS’ > NILFS_CHECKPOINT_FNS(SNAPSHOT, snapshot) > ^~~~~~~~~~~~~~~~~~~~ > ./usr/include/linux/nilfs2_ondisk.h: In function ‘nilfs_segment_usage_set_clean’: > ./usr/include/linux/nilfs2_ondisk.h:622:19: error: implicit declaration of function ‘cpu_to_le64’ [-Werror=implicit-function-declaration] > su->su_lastmod = cpu_to_le64(0); > ^~~~~~~~~~~ > > Signed-off-by: Masahiro Yamada <yamada.masahiro@xxxxxxxxxxxxx> > --- > > include/uapi/linux/nilfs2_ondisk.h | 24 ++++++++++++------------ > 1 file changed, 12 insertions(+), 12 deletions(-) > > diff --git a/include/uapi/linux/nilfs2_ondisk.h b/include/uapi/linux/nilfs2_ondisk.h > index a7e66ab11d1d..c23f91ae5fe8 100644 > --- a/include/uapi/linux/nilfs2_ondisk.h > +++ b/include/uapi/linux/nilfs2_ondisk.h > @@ -29,7 +29,7 @@ > > #include <linux/types.h> > #include <linux/magic.h> > - > +#include <asm/byteorder.h> > > #define NILFS_INODE_BMAP_SIZE 7 > > @@ -533,19 +533,19 @@ enum { > static inline void \ > nilfs_checkpoint_set_##name(struct nilfs_checkpoint *cp) \ > { \ > - cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) | \ > - (1UL << NILFS_CHECKPOINT_##flag)); \ > + cp->cp_flags = __cpu_to_le32(__le32_to_cpu(cp->cp_flags) | \ > + (1UL << NILFS_CHECKPOINT_##flag)); \ > } \ > static inline void \ > nilfs_checkpoint_clear_##name(struct nilfs_checkpoint *cp) \ > { \ > - cp->cp_flags = cpu_to_le32(le32_to_cpu(cp->cp_flags) & \ > + cp->cp_flags = __cpu_to_le32(__le32_to_cpu(cp->cp_flags) & \ > ~(1UL << NILFS_CHECKPOINT_##flag)); \ > } \ > static inline int \ > nilfs_checkpoint_##name(const struct nilfs_checkpoint *cp) \ > { \ > - return !!(le32_to_cpu(cp->cp_flags) & \ > + return !!(__le32_to_cpu(cp->cp_flags) & \ > (1UL << NILFS_CHECKPOINT_##flag)); \ > } > > @@ -595,20 +595,20 @@ enum { > static inline void \ > nilfs_segment_usage_set_##name(struct nilfs_segment_usage *su) \ > { \ > - su->su_flags = cpu_to_le32(le32_to_cpu(su->su_flags) | \ > + su->su_flags = __cpu_to_le32(__le32_to_cpu(su->su_flags) | \ > (1UL << NILFS_SEGMENT_USAGE_##flag));\ > } \ > static inline void \ > nilfs_segment_usage_clear_##name(struct nilfs_segment_usage *su) \ > { \ > su->su_flags = \ > - cpu_to_le32(le32_to_cpu(su->su_flags) & \ > + __cpu_to_le32(__le32_to_cpu(su->su_flags) & \ > ~(1UL << NILFS_SEGMENT_USAGE_##flag)); \ > } \ > static inline int \ > nilfs_segment_usage_##name(const struct nilfs_segment_usage *su) \ > { \ > - return !!(le32_to_cpu(su->su_flags) & \ > + return !!(__le32_to_cpu(su->su_flags) & \ > (1UL << NILFS_SEGMENT_USAGE_##flag)); \ > } > > @@ -619,15 +619,15 @@ NILFS_SEGMENT_USAGE_FNS(ERROR, error) > static inline void > nilfs_segment_usage_set_clean(struct nilfs_segment_usage *su) > { > - su->su_lastmod = cpu_to_le64(0); > - su->su_nblocks = cpu_to_le32(0); > - su->su_flags = cpu_to_le32(0); > + su->su_lastmod = __cpu_to_le64(0); > + su->su_nblocks = __cpu_to_le32(0); > + su->su_flags = __cpu_to_le32(0); > } > > static inline int > nilfs_segment_usage_clean(const struct nilfs_segment_usage *su) > { > - return !le32_to_cpu(su->su_flags); > + return !__le32_to_cpu(su->su_flags); > } > > /** > -- > 2.17.1 > -- Best Regards Masahiro Yamada