~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/include/uapi/README

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /tools/include/uapi/README (Version linux-6.12-rc7) and /tools/include/uapi/README (Version linux-5.16.20)


  1 Why we want a copy of kernel headers in tools?    
  2 ==============================================    
  3                                                   
  4 There used to be no copies, with tools/ code u    
  5 directly. From time to time tools/perf/ broke     
  6 hacking. At some point Linus complained about     
  7 adopted the current model.                        
  8                                                   
  9 The way these headers are used in perf are not    
 10 including them to compile something.              
 11                                                   
 12 There are sometimes used in scripts that conve    
 13 tables, etc, so some change may break one of t    
 14 may use some different #define pattern, etc.      
 15                                                   
 16 E.g.:                                             
 17                                                   
 18   $ ls -1 tools/perf/trace/beauty/*.sh | head     
 19   tools/perf/trace/beauty/arch_errno_names.sh     
 20   tools/perf/trace/beauty/drm_ioctl.sh            
 21   tools/perf/trace/beauty/fadvise.sh              
 22   tools/perf/trace/beauty/fsconfig.sh             
 23   tools/perf/trace/beauty/fsmount.sh              
 24   $                                               
 25   $ tools/perf/trace/beauty/fadvise.sh            
 26   static const char *fadvise_advices[] = {        
 27         [0] = "NORMAL",                           
 28         [1] = "RANDOM",                           
 29         [2] = "SEQUENTIAL",                       
 30         [3] = "WILLNEED",                         
 31         [4] = "DONTNEED",                         
 32         [5] = "NOREUSE",                          
 33   };                                              
 34   $                                               
 35                                                   
 36 The tools/perf/check-headers.sh script, part o    
 37 process, points out changes in the original fi    
 38                                                   
 39 So its important not to touch the copies in to    
 40 the original kernel headers, that will be done    
 41 check-headers.sh inform about the change to th    
 42                                                   
 43 Another explanation from Ingo Molnar:             
 44 It's better than all the alternatives we tried    
 45                                                   
 46  - Symbolic links and direct #includes: this w    
 47    was pushed back on from the kernel side, wh    
 48    headers and broke them accidentally for ker    
 49                                                   
 50  - Duplicate self-defined ABI headers like gli    
 51    burden, double the chance for mistakes, plu    
 52    notification mechanism to look at new kerne    
 53                                                   
 54 What we are doing now is a third option:          
 55                                                   
 56  - A software-enforced copy-on-write mechanism    
 57    tooling, driven by non-fatal warnings on th    
 58    kernel headers get modified:                   
 59                                                   
 60     Warning: Kernel ABI header differences:       
 61       diff -u tools/include/uapi/drm/i915_drm.    
 62       diff -u tools/include/uapi/linux/fs.h in    
 63       diff -u tools/include/uapi/linux/kvm.h i    
 64       ...                                         
 65                                                   
 66    The tooling policy is to always pick up the    
 67    and integate them into the tooling build. T    
 68    notification to tooling maintainers that th    
 69    side.                                          
 70                                                   
 71 We've been using this for many years now, and     
 72 works surprisingly well.                          
 73                                                   
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php