dslm4515 / CMLFS

Clang-Built Musl Linux From Scratch
MIT License
99 stars 18 forks source link

Kernel 5.13 will not compile under Musl #22

Closed dslm4515 closed 3 years ago

dslm4515 commented 3 years ago

Build fails due to 20 errors. This is the 2nd kernel version with bad typos in the source.

  CC      /sources/linux-5.13/tools/objtool/arch/x86/decode.o                                                                         [136/1913]
In file included from arch/x86/decode.c:10:                                                                                                     
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:10:                     
In file included from /usr/include/asm/byteorder.h:5:
In file included from /usr/include/linux/byteorder/little_endian.h:13:  
/usr/include/linux/swab.h:136:8: error: unknown type name '__always_inline'                                                                     
static __always_inline unsigned long __swab(const unsigned long y)                                                                              
       ^                                                                                                                                        
/usr/include/linux/swab.h:171:8: error: unknown type name '__always_inline'
static __always_inline __u16 __swab16p(const __u16 *p) 
       ^                                                                                                                                        
/usr/include/linux/swab.h:171:29: error: expected ';' after top level declarator                    
static __always_inline __u16 __swab16p(const __u16 *p)
                            ^                                           
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:97:8: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
extern insn_attr_t inat_get_opcode_attribute(insn_byte_t opcode);
       ^~~~~~~~~~~
       insn_byte_t
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;
                      ^
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:99:8: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
extern insn_attr_t inat_get_escape_attribute(insn_byte_t opcode,
       ^~~~~~~~~~~
       insn_byte_t
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;
                      ^
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:101:11: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
                                             insn_attr_t esc_attr);
                                             ^~~~~~~~~~~
                                             insn_byte_t
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;
                      ^
  MKELF   scripts/mod/elfconfig.h
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:102:8: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
extern insn_attr_t inat_get_group_attribute(insn_byte_t modrm,
       ^~~~~~~~~~~
       insn_byte_t
       ^~~~~~~~~~~                                                                                                                     [90/1913]
       insn_byte_t                                                                                                                              
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;                                      
                      ^                                                 
In file included from arch/x86/decode.c:10:                                                                                                     
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:                                                                 
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:104:10: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?               
                                            insn_attr_t esc_attr);                                                                              
                                            ^~~~~~~~~~~
                                            insn_byte_t                                                                                         
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;                                      
                      ^                                                 
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:105:8: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
extern insn_attr_t inat_get_avx_attribute(insn_byte_t opcode,    
       ^~~~~~~~~~~
       insn_byte_t
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;
                      ^
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:110:41: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
static inline int inat_is_legacy_prefix(insn_attr_t attr)       
                                        ^~~~~~~~~~~
                                        insn_byte_t
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;
                      ^
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:116:47: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
static inline int inat_is_address_size_prefix(insn_attr_t attr)    
                                              ^~~~~~~~~~~
                                              insn_byte_t
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;
                      ^
  HOSTCC  scripts/mod/modpost.o  
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:121:47: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
static inline int inat_is_operand_size_prefix(insn_attr_t attr)
                                              ^~~~~~~~~~~
                                              insn_byte_t
                                              ^~~~~~~~~~~                                                                              [44/1913]
                                              insn_byte_t                                                                                       
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;                                      
                      ^                                                 
In file included from arch/x86/decode.c:10:                                                                                                     
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:                                                                 
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:126:38: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?               
static inline int inat_is_rex_prefix(insn_attr_t attr)                                                                                          
                                     ^~~~~~~~~~~       
                                     insn_byte_t                                                                                                
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;                                      
                      ^                                                 
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:131:39: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
static inline int inat_last_prefix_id(insn_attr_t attr)          
                                      ^~~~~~~~~~~
                                      insn_byte_t
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;
                      ^
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:139:38: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
static inline int inat_is_vex_prefix(insn_attr_t attr)          
                                     ^~~~~~~~~~~   
                                     insn_byte_t   
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;
                      ^
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:146:39: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
static inline int inat_is_evex_prefix(insn_attr_t attr)            
                                      ^~~~~~~~~~~        
                                      insn_byte_t        
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
typedef unsigned char insn_byte_t;
                      ^
In file included from arch/x86/decode.c:10:
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:151:39: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
static inline int inat_is_vex3_prefix(insn_attr_t attr)                                                                                         
                                      ^~~~~~~~~~~              
                                      insn_byte_t        
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here
static inline int inat_is_vex3_prefix(insn_attr_t attr)                                                                                 [0/1913]
                                      ^~~~~~~~~~~                                                                                               
                                      insn_byte_t                                                                                               /sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here                                            typedef unsigned char insn_byte_t;                                                                                                              
                      ^                                                                                                                         
In file included from arch/x86/decode.c:10:                                                                                                     
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:                                                                 /sources/linux-5.13/tools/arch/x86/include/asm/inat.h:156:34: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?               
static inline int inat_is_escape(insn_attr_t attr)                                                                                              
                                 ^~~~~~~~~~~                                                                                                    
                                 insn_byte_t                                                                                                    /sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here                                            typedef unsigned char insn_byte_t;                                                                                                              
                      ^                                                                                                                         
In file included from arch/x86/decode.c:10:                                                                                                     
In file included from /sources/linux-5.13/tools/arch/x86/include/asm/insn.h:12:                     
/sources/linux-5.13/tools/arch/x86/include/asm/inat.h:161:34: error: unknown type name 'insn_attr_t'; did you mean 'insn_byte_t'?
static inline int inat_escape_id(insn_attr_t attr)                                                                                              
                                 ^~~~~~~~~~~                                                                                                    
                                 insn_byte_t                                                                                                    
/sources/linux-5.13/tools/arch/x86/include/asm/inat_types.h:12:23: note: 'insn_byte_t' declared here                                            
typedef unsigned char insn_byte_t;                                      
                      ^                                                                                                                         
fatal error: too many errors emitted, stopping now [-ferror-limit=]                                                                             
20 errors generated.                                                                                                                            
make[4]: *** [/sources/linux-5.13/tools/build/Makefile.build:97: /sources/linux-5.13/tools/objtool/arch/x86/decode.o] Error 1
make[3]: *** [/sources/linux-5.13/tools/build/Makefile.build:139: arch/x86] Error 2
make[2]: *** [Makefile:56: /sources/linux-5.13/tools/objtool/objtool-in.o] Error 2                                                              
make[1]: *** [Makefile:69: objtool] Error 2                                                                                                     
make: *** [Makefile:1974: tools/objtool] Error 2                                                                                                
make: *** Waiting for unfinished jobs....         
dslm4515 commented 3 years ago

Kernel version 5.9.16 lacks error and compiles

owl4ce commented 3 years ago

You may need to reinstall Linux API Headers with this patch, https://github.com/dslm4515/Musl-LFS/issues/51

dslm4515 commented 3 years ago

You may need to reinstall Linux API Headers with this patch, dslm4515/Musl-LFS#51

I forgot to patch the kernel source when I built the headers. Now the kernel builds!