nathanchance / android-kernel-clang

Information on compiling Android kernels with Clang
291 stars 83 forks source link

undefined reference to `stpcpy' problem during compilation #16

Open xiaoyue10131748 opened 4 years ago

xiaoyue10131748 commented 4 years ago

Thanks for providing such cool tutorial! However, I encounter a problem in linking process. It says undefined reference to stpcpy. Then, I search stpcpy in the android source code, I did not see any definition. I have been stuck for the whole day, could you give some hints if possible?

  CC [M]  drivers/scsi/st.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtlwifi.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl_pci.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/sw.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/table.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl_usb.o
  CC [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/trx.o
  CC [M]  drivers/scsi/ch.o
  CC [M]  drivers/scsi/ses.o
  CC [M]  drivers/scsi/scsi_debug.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8821ae/rtl8821ae.o
  LD      drivers/scsi/scsi_mod.o
  LD      drivers/scsi/sd_mod.o
  LD      drivers/scsi/sr_mod.o
  LD [M]  drivers/net/wireless/realtek/rtlwifi/rtl8723be/rtl8723be.o
  LD      drivers/net/wireless/built-in.o
  LD      drivers/net/built-in.o
  LD [M]  drivers/scsi/qla2xxx/qla2xxx.o
  LD      drivers/scsi/built-in.o
  LD      drivers/built-in.o
  GEN     .version
  LD      vmlinux.o
  MODPOST vmlinux.o
  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/version.o
  LD      init/built-in.o
drivers/built-in.o: In function `devspec_show':
/home/yuexiao/Documents/research/diffcvss/LLVM/andoid_mainline/kernel_common/out/../drivers/pci/pci-sysfs.c:440: undefined reference to `stpcpy'
drivers/built-in.o: In function `tty_line_name':
/home/yuexiao/Documents/research/diffcvss/LLVM/andoid_mainline/kernel_common/out/../drivers/tty/tty_io.c:1360: undefined reference to `stpcpy'
/home/yuexiao/Documents/research/diffcvss/LLVM/andoid_mainline/kernel_common/out/../drivers/tty/tty_io.c:1360: undefined reference to `stpcpy'
/home/yuexiao/Documents/research/diffcvss/LLVM/andoid_mainline/kernel_common/out/../drivers/tty/tty_io.c:1360: undefined reference to `stpcpy'
drivers/built-in.o: In function `get_ata_class_names':
/home/yuexiao/Documents/research/diffcvss/LLVM/andoid_mainline/kernel_common/out/../drivers/ata/libata-transport.c:149: undefined reference to `stpcpy'
security/built-in.o:/home/yuexiao/Documents/research/diffcvss/LLVM/andoid_mainline/kernel_common/out/../security/apparmor/lsm.c:818: more undefined references to `stpcpy' follow
make[1]: *** [/home/yuexiao/Documents/research/diffcvss/LLVM/andoid_mainline/kernel_common/Makefile:1071: vmlinux] Error 1
make[1]: Leaving directory '/home/yuexiao/Documents/research/diffcvss/LLVM/andoid_mainline/kernel_common/out'
make: *** [Makefile:152: sub-make] Error 2
nathanchance commented 4 years ago

Pick this patch to fix it: https://git.kernel.org/next/linux-next/c/5934637641c863cc2c1765a0d01c5b6f53ecc4fc

xiaoyue10131748 commented 4 years ago

It works! Thanks again!!

xiaoyue10131748 commented 4 years ago

By following this tutorial, I have successfully compile android 4.4 oreo and android-4.9-q-release. Thanks again! Btw, Could you give some hints on how to get IR (.bc or. ll) from the kernel if possible? I am so appreciated for your kindness help!

stefanct commented 1 year ago

The patch eventually ended up in vanilla in this commit: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1e1b6d63d6340764e00356873e5794225a2a03ea