# 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/sparc64-linux/bin/sparc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-5.5.0-nolibc/sparc64-linux/bin/sparc64-linux-ld --version # < git log --format=%s --max-count=1 44028378399f0b16ba5158dc7645cd577b89455d # make -s -j 40 ARCH=sparc64 O=/kisskb/build/kbuild_defconfig_sparc64-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/sparc64-linux/bin/sparc64-linux- defconfig # < make -s -j 40 ARCH=sparc64 O=/kisskb/build/kbuild_defconfig_sparc64-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/sparc64-linux/bin/sparc64-linux- help # make -s -j 40 ARCH=sparc64 O=/kisskb/build/kbuild_defconfig_sparc64-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/sparc64-linux/bin/sparc64-linux- olddefconfig # make -s -j 40 ARCH=sparc64 O=/kisskb/build/kbuild_defconfig_sparc64-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/sparc64-linux/bin/sparc64-linux- :1519:2: warning: #warning syscall clone3 not implemented [-Wcpp] cc1: warning: unrecognized command line option '-Wno-shift-negative-value' WARNING: modpost: EXPORT symbol "_mcount" [vmlinux] version generation failed, symbol will not be versioned. Is "_mcount" prototyped in ? kernel: arch/sparc/boot/image is ready kernel: arch/sparc/boot/zImage is ready Completed OK # rm -rf /kisskb/build/kbuild_defconfig_sparc64-gcc5 # Build took: 0:00:48.277897