# git rev-parse -q --verify 44028378399f0b16ba5158dc7645cd577b89455d^{commit} 44028378399f0b16ba5158dc7645cd577b89455d already have revision, skipping fetch # git checkout -q -f -B kisskb 44028378399f0b16ba5158dc7645cd577b89455d # git clean -qxdf # < git log -1 # commit 44028378399f0b16ba5158dc7645cd577b89455d # Author: Jialu Xu # Date: Sun Dec 10 15:05:34 2023 +0800 # # gen_compile_commands.py: fix path resolve with symlinks in it # # When a path contains relative symbolic links, os.path.abspath() might # not follow the symlinks and instead return the absolute path with just # the relative paths resolved, resulting in an incorrect path. # # 1. Say "drivers/hdf/" has some symlinks: # # # ls -l drivers/hdf/ # total 364 # drwxrwxr-x 2 ... 4096 ... evdev # lrwxrwxrwx 1 ... 44 ... framework -> ../../../../../../drivers/hdf_core/framework # -rw-rw-r-- 1 ... 359010 ... hdf_macro_test.h # lrwxrwxrwx 1 ... 55 ... inner_api -> ../../../../../../drivers/hdf_core/interfaces/inner_api # lrwxrwxrwx 1 ... 53 ... khdf -> ../../../../../../drivers/hdf_core/adapter/khdf/linux # -rw-r--r-- 1 ... 74 ... Makefile # drwxrwxr-x 3 ... 4096 ... wifi # # 2. One .cmd file records that: # # # head -1 ./framework/core/manager/src/.devmgr_service.o.cmd # cmd_drivers/hdf/khdf/manager/../../../../framework/core/manager/src/devmgr_service.o := ... \ # /path/to/src/drivers/hdf/khdf/manager/../../../../framework/core/manager/src/devmgr_service.c # # 3. os.path.abspath returns "/path/to/src/framework/core/manager/src/devmgr_service.c", not correct: # # # ./scripts/clang-tools/gen_compile_commands.py # INFO: Could not add line from ./framework/core/manager/src/.devmgr_service.o.cmd: File \ # /path/to/src/framework/core/manager/src/devmgr_service.c not found # # Use os.path.realpath(), which resolves the symlinks and normalizes the paths correctly. # # # cat compile_commands.json # ... # { # "command": ... # "directory": ... # "file": "/path/to/bla/drivers/hdf_core/framework/core/manager/src/devmgr_service.c" # }, # ... # # Also fix it in parse_arguments(). # # Signed-off-by: Jialu Xu # Signed-off-by: Masahiro Yamada # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 44028378399f0b16ba5158dc7645cd577b89455d # make -s -j 40 ARCH=powerpc O=/kisskb/build/kbuild_pseries_le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- pseries_le_defconfig Using /kisskb/src/arch/powerpc/configs/ppc64_defconfig as base Merging /kisskb/src/arch/powerpc/configs/le.config Merging /kisskb/src/arch/powerpc/configs/guest.config Value of CONFIG_VIRTIO_BLK is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_BLK=m New value: CONFIG_VIRTIO_BLK=y Value of CONFIG_SCSI_VIRTIO is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_SCSI_VIRTIO=m New value: CONFIG_SCSI_VIRTIO=y Value of CONFIG_VIRTIO_NET is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_NET=m New value: CONFIG_VIRTIO_NET=y Value of CONFIG_VIRTIO_CONSOLE is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_CONSOLE=m New value: CONFIG_VIRTIO_CONSOLE=y Value of CONFIG_VIRTIO_PCI is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_PCI=m New value: CONFIG_VIRTIO_PCI=y Value of CONFIG_VIRTIO_BALLOON is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_BALLOON=m New value: CONFIG_VIRTIO_BALLOON=y Value of CONFIG_VHOST_NET is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VHOST_NET=m New value: CONFIG_VHOST_NET=y Value of CONFIG_IBMVETH is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_IBMVETH=m New value: CONFIG_IBMVETH=y Value of CONFIG_IBMVNIC is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_IBMVNIC=m New value: CONFIG_IBMVNIC=y Merging /kisskb/src/arch/powerpc/configs/kvm_guest.config # # merged configuration written to .config (needs make) # # < make -s -j 40 ARCH=powerpc O=/kisskb/build/kbuild_pseries_le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 40 ARCH=powerpc O=/kisskb/build/kbuild_pseries_le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 40 ARCH=powerpc O=/kisskb/build/kbuild_pseries_le_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/kbuild_pseries_le_defconfig_powerpc-gcc5 # Build took: 0:01:57.797251