Details
-
Bug
-
Resolution: Fixed
-
Major
-
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
- is blocked by
-
LU-4998 lustre_idl.h compilation regression from LU-2684
-
- Resolved
-
-
LU-5000 lustre_idl.h compilation regression from ORNL-10
-
- Resolved
-
-
LU-4997 lustre_idl.h compilation regression from LU-2743
-
- Closed
-
-
LU-4999 lustre_idl.h compilation regression from LU-3569
-
- Closed
-
- is related to
-
LU-5327 powerpc64 defines __u64 differently for kernel- and user-space
-
- Resolved
-
-
LU-5065 lfs should dogfood llapi
-
- Closed
-
-
LU-6245 Untangle userland and kernel space support for libcfs
-
- Resolved
-
- is related to
-
LU-5001 Backport needed to b2_4 of "LU-1606 idl: remove LASSERT/CLASSERT from lustre_idl.h"
-
- Resolved
-
-
LU-1606 lustre_idl.h does not compile in user-space
-
- Closed
-
-
LU-6401 Untangle lustre userland and kernel headers
-
- Resolved
-
Please see http://review.whamcloud.com/#/c/10280/ for what happens when we use uin32_t in the headers. The issue now is that if __KERNEL__ is defined then __u64 and uint64_t are the same type (unsigned long long). If __KERNEL__ is not defined then one is unsigned long and the other is unsigned long long. Thus we have a huge flag day where all of user space needs to be rewritten to not use __[us]XX. For sanity sake this also means not using LPX64. Whatever changes we make we still need to stay friends with GCC.
Regarding the fuse headers: yes they look very nice. The difference I see is that they probably share very little code between user space and kernel space. We share a lot. It's not great that we do, but we do. Please remember that there are limits to how much change I can convince the other developers to accept in a short time.