cirosantilli / linux-kernel-module-cheat

The perfect emulation setup to study and develop the Linux kernel v5.4.3, kernel modules, QEMU, gem5 and x86_64, ARMv7 and ARMv8 userland and baremetal assembly, ANSI C, C++ and POSIX. GDB step debug and KGDB just work. Powered by Buildroot and crosstool-NG. Highly automated. Thoroughly documented. Automated tests. "Tested" in an Ubuntu 24.04 host.
https://cirosantilli.com/linux-kernel-module-cheat
GNU General Public License v3.0
4.2k stars 605 forks source link

Ubuntu 21.04 host `./build --download-dependencies qemu-buildroot` fails on buildroot host-fakeroot package with `error: ‘_STAT_VER’ undeclared` #155

Open cirosantilli opened 3 years ago

cirosantilli commented 3 years ago

lkmc 38eb67ad2ec46b58dbc701073ce0e980fad7788b

Usually you solve this kind of crap by updating buildroot. Some threads:

Logs:

>>> host-fakeroot 1.20.2 Building                                                                                                                                                                                                                                               
PATH="/home/ciro/bak/git/lkmc/out/buildroot/build/default/x86_64/host/bin:/home/ciro/bak/git/lkmc/out/buildroot/build/default/x86_64/host/sbin:/home/ciro/.pyenv/bin:/home/ciro/perl5/bin:/home/ciro/down/bitcoin/bin:/usr/local/heroku/bin:/home/ciro/android-sdk/platform-tool
s:/home/ciro/android-sdk/tools:/home/ciro/android-studio//bin:/home/ciro/android-sdk/ndk-bundle:/home/ciro/android-sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:/home/ciro/bak/git/devbin:/home/ciro/bin:/usr/local/texlive/2013/bin/x86_64-lin
ux:/home/ciro/.pyenv/bin:/home/ciro/perl5/bin:/home/ciro/.nvm/versions/node/v14.17.0/bin:/home/ciro/down/bitcoin/bin:/usr/local/heroku/bin:/home/ciro/android-sdk/platform-tools:/home/ciro/android-sdk/tools:/home/ciro/android-studio//bin:/home/ciro/android-sdk/ndk-bundle:/
home/ciro/android-sdk/ndk-bundle/toolchains/arm-linux-androideabi-4.9/prebuilt/linux-x86_64/bin:/home/ciro/bak/git/devbin:/home/ciro/bin:/usr/local/texlive/2013/bin/x86_64-linux:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap
/bin:/snap/bin:/home/ciro/bak/git/latex:/home/ciro/.cabal/bin:/home/ciro/.go/bin:/home/ciro/.local/bin/:/home/ciro/bak/git/runlinux:/home/ciro/.rvm/bin:/home/ciro/anaconda2/bin:/home/ciro/bak/git/latex:/home/ciro/.cabal/bin:/home/ciro/.go/bin:/home/ciro/.local/bin/:/home/
ciro/bak/git/runlinux:/home/ciro/.rvm/bin:/home/ciro/anaconda2/bin" PKG_CONFIG="/home/ciro/bak/git/lkmc/out/buildroot/build/default/x86_64/host/bin/pkg-config" PKG_CONFIG_SYSROOT_DIR="/" PKG_CONFIG_ALLOW_SYSTEM_CFLAGS=1 PKG_CONFIG_ALLOW_SYSTEM_LIBS=1 PKG_CONFIG_LIBDIR="/h
ome/ciro/bak/git/lkmc/out/buildroot/build/default/x86_64/host/lib/pkgconfig:/home/ciro/bak/git/lkmc/out/buildroot/build/default/x86_64/host/share/pkgconfig"  /usr/bin/make -j8  -C /home/ciro/bak/git/lkmc/out/buildroot/build/default/x86_64/build/host-fakeroot-1.20.2/      
/usr/bin/make  all-recursive                                                                                                                                                                                                                                                    
Making all in scripts                                                                                                                                                                                                                                                           
sed -e 's,[@]prefix[@],/home/ciro/bak/git/lkmc/out/buildroot/build/default/x86_64/host,g' -e 's,[@]bindir[@],/home/ciro/bak/git/lkmc/out/buildroot/build/default/x86_64/host/bin,g' -e 's,[@]libdir[@],/home/ciro/bak/git/lkmc/out/buildroot/build/default/x86_64/host/lib,g' -e
 's,[@]fakeroot_transformed[@],'`echo fakeroot | sed -e 's,x,x,'`',g' -e 's,[@]faked_transformed[@],'`echo faked | sed -e 's,x,x,'`',g' -e 's,[@]signal[@],TERM,g' -e 's,[@]SHELL[@],/bin/bash,g' -e 's,[@]VERSION[@],1.20.2,g' -e 's,[@]DLSUFFIX[@],.so,g' -e 's,[@]LDLIBPATHVA
R[@],LD_LIBRARY_PATH,g' -e 's,[@]LDPRELOADVAR[@],LD_PRELOAD,g' -e 's,[@]LDPRELOADABS[@],0,g' -e 's,[@]LDEXTRAVAR[@],,g' -e 's,[@]MACOSX_FALSE[@],,g' -e 's,[@]MACOSX_TRUE[@],#,g' < ./fakeroot.in > fakeroot                                                                    
chmod +x fakeroot                                                                                                                                                                                                                                                               
Making all in doc                                                                                                                                                                                                                                                               
Making all in de                                                                                                                        
make[5]: Nothing to be done for 'all'.                                                                                                  
Making all in es                                                                                                                        
make[5]: Nothing to be done for 'all'.                                                                                                                                                                                                                                          
Making all in fr                                                                                                                        
make[5]: Nothing to be done for 'all'.                                                                                                  
Making all in nl                                                                                                                        
make[5]: Nothing to be done for 'all'.                                                                                                  
Making all in pt                                                                                                                                                                                                                                                                
make[5]: Nothing to be done for 'all'.                                                                                                                                                                                                                                          
Making all in sv                                                                                                                        
make[5]: Nothing to be done for 'all'.                                                                                                  
make[5]: Nothing to be done for 'all-am'.                                                                                               
Making all in test                                                                                                                                                                                                                                                              
make[4]: Nothing to be done for 'all'.                                                                                                  
awk -f ./wrapawk < ./wrapfunc.inp                                                                                                       
awk -f ./wrapawk < ./wrapfunc.inp                                                                                                       
awk -f ./wrapawk < ./wrapfunc.inp                                                                                                       
  CC       communicate.lo                                                                                                                                                                                                                                                       
  CC       libfakeroot_inode64.lo                                                                                                                                                                                                                                               
  CC       faked.o                                                                                                                      
awk: awk: ./wrapawk:27: ./wrapawk:warning: regexp escape sequence `\#' is not a known regexp operator27:                                                                                                                                                                        
warning: regexp escape sequence `\#' is not a known regexp operator                                                                                                                                                                                                             
  CC       simple.o                                                                                                                                                                                                                                                             
awk: ./wrapawk:27: warning: regexp escape sequence `\#' is not a known regexp operator                                                                                                                                                                                          
  CC       libfakeroot_unix2003.lo                                                                                                                                                                                                                                              
  CC       libfakeroot.lo                                                                                                                                                                                                                                                       
  CCLD     simple                                                                                                                                                                                                                                                               
  CCLD     libmacosx.la                                                                                                                                                                                                                                                         
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')                                                                    
In file included from communicate.h:20,                                                                                                                                                                                                                                         
                 from libfakeroot.c:60:                                                                                                                                                                                                                                         
libfakeroot.c: In function ‘chown’:                                                                                                                                                                                                                                             
libfakeroot.c:99:40: error: ‘_STAT_VER’ undeclared (first use in this function)                                                                                                                                                                                                 
   99 | #define INT_NEXT_STAT(a,b) NEXT_STAT64(_STAT_VER,a,b)                                                                           
      |                                        ^~~~~~~~~