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

lustre_idl.h does not compile in user-space

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • Critical
    • Lustre 2.4.0, Lustre 2.5.0
    • Lustre 2.3.0, Lustre 2.4.0, Lustre 2.1.1, Lustre 2.1.3, Lustre 2.4.1, Lustre 2.5.0, Lustre 2.5.1
    • 3
    • 4531

    Description

      lustre_idl.h is mentioned (most likely incorrectly) in several examples in the Lustre manual. I've opened a lustre doc bug on that.

      But is clear now that lustre_idl.h will not compile at all in user-space on Linux due to the lack of LPU64 and LPX64 definitions:

      $ gcc -o example example.c
      In file included from example.c:7:
      /usr/include/lustre/lustre_idl.h:98:58: error: libcfs/libcfs.h: No such file or directory
      In file included from example.c:7:
      /usr/include/lustre/lustre_idl.h: In function 'fid_ostid_unpack':
      /usr/include/lustre/lustre_idl.h:548: error: expected ')' before 'LPU64'
      /usr/include/lustre/lustre_idl.h:560: error: expected ')' before 'LPU64'
      /usr/include/lustre/lustre_idl.h:573: error: expected ')' before 'LPU64'
      /usr/include/lustre/lustre_idl.h:582: error: expected ')' before 'LPU64'
      /usr/include/lustre/lustre_idl.h: In function 'fid_ostid_pack':
      /usr/include/lustre/lustre_idl.h:584: error: expected ')' before 'LPX64'
      /usr/include/lustre/lustre_idl.h: In function 'ostid_seq':
      /usr/include/lustre/lustre_idl.h:631: error: expected ')' before 'LPU64'
      /usr/include/lustre/lustre_idl.h: In function 'fid_cpu_to_le':
      /usr/include/lustre/lustre_idl.h:700: error: expected ')' before 'LPX64'
      /usr/include/lustre/lustre_idl.h: In function 'fid_le_to_cpu':
      /usr/include/lustre/lustre_idl.h:715: error: expected ')' before 'LPX64'
      /usr/include/lustre/lustre_idl.h: In function 'fid_cpu_to_be':
      /usr/include/lustre/lustre_idl.h:724: error: expected ')' before 'LPX64'
      /usr/include/lustre/lustre_idl.h: In function 'fid_be_to_cpu':
      /usr/include/lustre/lustre_idl.h:739: error: expected ')' before 'LPX64'
      /usr/include/lustre/lustre_idl.h: In function 'lu_fid_eq':
      /usr/include/lustre/lustre_idl.h:765: error: expected ')' before 'LPX64'
      /usr/include/lustre/lustre_idl.h:766: error: expected ')' before 'LPX64'
      

      Should lustre_idl.h even be installed in /usr/include/lustre? If so we need to deal with the missing definitions.

      I see that darwin's lustre_usr.h has a copy of the definitions, but for linux they are only in kp30.h, which is not part of user-space.

      Attachments

        Issue Links

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved: