Uploaded image for project: 'Lustre'
  1. Lustre
  2. LU-5011

lustre_idl.h again does not compile in user space

Details

    • Bug
    • Resolution: Fixed
    • Major
    • Lustre 2.10.0
    • Lustre 2.4.0, Lustre 2.4.1, Lustre 2.5.0, Lustre 2.4.2, Lustre 2.5.1, Lustre 2.4.3
    • 3
    • 13871

    Description

      New ticket for the the recurring problem of lustre_idl.h not compiling in user-space. Conversation began in LU-1606, but we want to have a separate ticket for Lustre 2.6.0.

      Attachments

        Issue Links

          Activity

            [LU-5011] lustre_idl.h again does not compile in user space
            jhammond John Hammond added a comment -

            > While doing the libcfs cleanup I discovered that while lustre_idl.h is not exported for user land in the rpms liblustreapi still depends on this header to build.

            That's intentional. lustre_idl.h will not be packaged. llapi is the public interface.

            jhammond John Hammond added a comment - > While doing the libcfs cleanup I discovered that while lustre_idl.h is not exported for user land in the rpms liblustreapi still depends on this header to build. That's intentional. lustre_idl.h will not be packaged. llapi is the public interface.

            While doing the libcfs cleanup I discovered that while lustre_idl.h is not exported for user land in the rpms liblustreapi still depends on this header to build.

            simmonsja James A Simmons added a comment - While doing the libcfs cleanup I discovered that while lustre_idl.h is not exported for user land in the rpms liblustreapi still depends on this header to build.

            Ah, great! Good riddance.

            The manual should have a note to users about lustre_idl.h's disappearance.

            morrone Christopher Morrone (Inactive) added a comment - Ah, great! Good riddance. The manual should have a note to users about lustre_idl.h's disappearance.
            sarah Sarah Liu added a comment -

            Hi Christopher,

            I didn't test lustre_idl.h because it has been removed
            http://review.whamcloud.com/#/c/10215

            [root@client-18 lustre]# ls
            liblustreapi.h ll_fiemap.h lustreapi.h lustre_user.h
            [root@client-18 lustre]# pwd
            /usr/include/lustre

            sarah Sarah Liu added a comment - Hi Christopher, I didn't test lustre_idl.h because it has been removed http://review.whamcloud.com/#/c/10215 [root@client-18 lustre] # ls liblustreapi.h ll_fiemap.h lustreapi.h lustre_user.h [root@client-18 lustre] # pwd /usr/include/lustre

            Wait, wait, wait. Why did you test lustreapi.h, lustre_user.h, and ll_fiemap.h when this ticket is very explicitly about lustre_idl.h?

            morrone Christopher Morrone (Inactive) added a comment - Wait, wait, wait. Why did you test lustreapi.h, lustre_user.h, and ll_fiemap.h when this ticket is very explicitly about lustre_idl.h?
            pjones Peter Jones added a comment -

            Thanks Sarah. This ticket will remain open as there are other subtasks still open but it sounds like the most critical tasks that were considered in scope for 2.6 are now complete so I am dropping that FixVersion and lowering the priority

            pjones Peter Jones added a comment - Thanks Sarah. This ticket will remain open as there are other subtasks still open but it sounds like the most critical tasks that were considered in scope for 2.6 are now complete so I am dropping that FixVersion and lowering the priority
            sarah Sarah Liu added a comment -

            I tried against the latest master build #2072, no warnings.
            It seems sanity.sh 400a and 400b have done the tests already

            [root@client-18 ~]# cat 5011_example.c 
            #include <lustre/lustreapi.h>
            #include <lustre/lustre_user.h>
            #include <lustre/ll_fiemap.h>
            
            main() {}
            [root@client-18 ~]# gcc 5011_example.c -llustreapi
            [root@client-18 ~]#
            
            sarah Sarah Liu added a comment - I tried against the latest master build #2072, no warnings. It seems sanity.sh 400a and 400b have done the tests already [root@client-18 ~]# cat 5011_example.c #include <lustre/lustreapi.h> #include <lustre/lustre_user.h> #include <lustre/ll_fiemap.h> main() {} [root@client-18 ~]# gcc 5011_example.c -llustreapi [root@client-18 ~]#
            jhammond John Hammond added a comment -

            > Looking at a FC13 test system I have, <linux/types.h> is part of kernel-headers*.rpm, which is required by glibc-headers, which is required by glibc-headers, which is required by glibc-devel, which is required by gcc, so it does indeed seem that <linux/types.h> is going to be installed on any system that is compiling something on Linux.

            This is a tenuous dependency. None of the headers in /usr/include/, /usr/include/bits/ or /usr/include/sys/ include linux/types.h or use any of the __uXX typedefs. sys/kd.h even defines _LINUX_TYPES_H so that including linux/kd.h will not pull in linux/types.h.

            > I think it makes sense to go back to http://review.whamcloud.com/#/c/10258/1/libcfs/include/libcfs/posix/posix-types.h which includes <linux/types.h> on any Linux system.

            I agree that in the short term this is the best fix.

            jhammond John Hammond added a comment - > Looking at a FC13 test system I have, <linux/types.h> is part of kernel-headers*.rpm, which is required by glibc-headers, which is required by glibc-headers, which is required by glibc-devel, which is required by gcc, so it does indeed seem that <linux/types.h> is going to be installed on any system that is compiling something on Linux. This is a tenuous dependency. None of the headers in /usr/include/, /usr/include/bits/ or /usr/include/sys/ include linux/types.h or use any of the __uXX typedefs. sys/kd.h even defines _LINUX_TYPES_H so that including linux/kd.h will not pull in linux/types.h. > I think it makes sense to go back to http://review.whamcloud.com/#/c/10258/1/libcfs/include/libcfs/posix/posix-types.h which includes <linux/types.h> on any Linux system. I agree that in the short term this is the best fix.

            Looking at a FC13 test system I have, <linux/types.h> is part of kernel-headers*.rpm, which is required by glibc-headers, which is required by glibc-headers, which is required by glibc-devel, which is required by gcc, so it does indeed seem that <linux/types.h> is going to be installed on any system that is compiling something on Linux.

            I think it makes sense to go back to http://review.whamcloud.com/#/c/10258/1/libcfs/include/libcfs/posix/posix-types.h which includes <linux/types.h> on any Linux system.

            adilger Andreas Dilger added a comment - Looking at a FC13 test system I have, <linux/types.h> is part of kernel-headers*.rpm, which is required by glibc-headers, which is required by glibc-headers, which is required by glibc-devel, which is required by gcc, so it does indeed seem that <linux/types.h> is going to be installed on any system that is compiling something on Linux. I think it makes sense to go back to http://review.whamcloud.com/#/c/10258/1/libcfs/include/libcfs/posix/posix-types.h which includes <linux/types.h> on any Linux system.

            Seems like an odd choice. But Linux is just odd that way sometimes, I guess.

            I guess I'm fine with use of the __u* as long as it is for things that interface directly with the kernel.

            morrone Christopher Morrone (Inactive) added a comment - Seems like an odd choice. But Linux is just odd that way sometimes, I guess. I guess I'm fine with use of the __u* as long as it is for things that interface directly with the kernel.

            Actually, the reverse is true - the __u* versions are for interface usage, and u* is for kernel internal use. Please don't go the opposite way from the kernel.

            adilger Andreas Dilger added a comment - Actually, the reverse is true - the __u* versions are for interface usage, and u* is for kernel internal use. Please don't go the opposite way from the kernel.

            People

              jhammond John Hammond
              morrone Christopher Morrone (Inactive)
              Votes:
              0 Vote for this issue
              Watchers:
              12 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: