Details
-
Bug
-
Resolution: Fixed
-
Critical
-
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
- is related to
-
LU-5001 Backport needed to b2_4 of "LU-1606 idl: remove LASSERT/CLASSERT from lustre_idl.h"
- Resolved
-
LU-2259 e2fsprogs: rename liblustreapi.h with lustreapi.h
- Resolved
-
LU-5011 lustre_idl.h again does not compile in user space
- Closed
-
LUDOC-63 liblustreapi examples have bad include statement
- Closed
-
LU-2196 Build shared version of liblustreapi
- Resolved
- is related to
-
LU-3597 packet-lustre.c opcodes out of sync with lustre_idl.h
- Resolved
-
LU-4999 lustre_idl.h compilation regression from LU-3569
- Closed
-
LU-4961 utils and test should not depend on obd.h or liblustre.h
- Closed
-
LUDOC-28 improve documentation examples for liblustreapi functions
- Closed