# git rev-parse -q --verify dda32e37d397f5937cc24a6e98b71d3645f51afa^{commit} dda32e37d397f5937cc24a6e98b71d3645f51afa already have revision, skipping fetch # git checkout -q -f -B kisskb dda32e37d397f5937cc24a6e98b71d3645f51afa # git clean -qxdf # < git log -1 # commit dda32e37d397f5937cc24a6e98b71d3645f51afa # Author: Michael Ellerman # Date: Mon Apr 22 23:34:53 2024 +1000 # # selftests/powerpc: Install tests in sub-directories # # The sources for the powerpc selftests are arranged into sub-directories. # However when the tests are built and installed, the sub-directories are # squashed, losing the structure. # # For example, with the current code the result of installing the selftests is: # # $ tree tools/testing/selftests/kselftest_install # tools/testing/selftests/kselftest_install # ├── kselftest # │   ├── ktap_helpers.sh # │   ├── module.sh # │   ├── prefix.pl # │   └── runner.sh # ├── kselftest-list.txt # ├── powerpc # │   ├── alignment_handler # │   ├── attr_test # │   ├── back_to_back_ebbs_test # │   ├── bad_accesses # │   ├── bhrb_filter_map_test # │   ├── bhrb_no_crash_wo_pmu_test # │   ├── blacklisted_events_test # │   ├── cache_shape # │   ├── close_clears_pmcc_test # │   ├── context_switch # │   ├── copy_first_unaligned # ... # │   ├── settings # ... # │   └── wild_bctr # └── run_kselftest.sh # # All the powerpc tests are squashed into the single powerpc directory. In # particular, note that there is a single `settings` file, even though # there are multiple settings files in the powerpc selftest sources. One # of the settings files ends up installed, depending on install order, # even if they have different contents. # # Similarly if there were two tests with the same name in different # sub-directories they would clobber each other. # # Fix it by replicating the directory structure of the source tree into # the install directory. The result being for example: # # $ tree tools/testing/selftests/kselftest_install # tools/testing/selftests/kselftest_install # ├── kselftest # │   ├── ktap_helpers.sh # │   ├── module.sh # │   ├── prefix.pl # │   └── runner.sh # ├── kselftest-list.txt # ├── powerpc # │   ├── alignment # │   │   ├── alignment_handler # │   │   └── copy_first_unaligned # │   ├── benchmarks # │   │   ├── context_switch # │   │   ├── exec_target # │   │   ├── fork # │   │   ├── futex_bench # │   │   ├── gettimeofday # │   │   ├── mmap_bench # │   │   ├── null_syscall # │   │   └── settings # ... # │   ├── eeh # │   │   ├── eeh-basic.sh # │   │   ├── eeh-functions.sh # │   │   └── settings # ... # │   └── vphn # │   └── test-vphn # └── run_kselftest.sh # # Note multiple settings files in different sub-directories. # # This change also has the effect of changing the names of the tests from # the point of view of the kselftest runner. Before the tests are named # eg: # # powerpc:copy_first_unaligned # powerpc:cache_shape # powerpc:reg_access_test # # After, the test collection names include the sub-directory: # # powerpc/alignment:copy_first_unaligned # powerpc/cache_shape:cache_shape # powerpc/pmu/ebb:reg_access_test # # That means whereas previously all powerpc tests could be run with: # # $ ./run_kselftest.sh -c powerpc # # After the change it's necessary to pass a regex that matches all powerpc # entries, eg: # # $ ./run_kselftest.sh -c "powerpc.*" # # The latter form also works before and after the change. # # Signed-off-by: Michael Ellerman # Link: https://msgid.link/20240422133453.1793988-2-mpe@ellerman.id.au # < /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 dda32e37d397f5937cc24a6e98b71d3645f51afa # make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- mpc85xx_defconfig Using /kisskb/src/arch/powerpc/configs/mpc85xx_base.config as base Merging /kisskb/src/arch/powerpc/configs/85xx-32bit.config Merging /kisskb/src/arch/powerpc/configs/85xx-hw.config Merging /kisskb/src/arch/powerpc/configs/fsl-emb-nonhw.config # # merged configuration written to .config (needs make) # # < make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_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/powerpc-next_mpc85xx_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/powerpc-next_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- In file included from /kisskb/src/include/linux/build_bug.h:5:0, from /kisskb/src/include/linux/container_of.h:5, from /kisskb/src/include/linux/list.h:5, from /kisskb/src/include/linux/module.h:12, from /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:15: /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c: In function 'allocate_bd': /kisskb/src/include/linux/err.h:28:49: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] #define IS_ERR_VALUE(x) unlikely((unsigned long)(void *)(x) >= (unsigned long)-MAX_ERRNO) ^ /kisskb/src/include/linux/compiler.h:77:42: note: in definition of macro 'unlikely' # define unlikely(x) __builtin_expect(!!(x), 0) ^ /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c:138:6: note: in expansion of macro 'IS_ERR_VALUE' if (IS_ERR_VALUE(fep->ring_mem_addr)) ^ /kisskb/src/drivers/net/ethernet/freescale/fs_enet/mac-scc.c: At top level: cc1: warning: unrecognized command line option '-Wno-shift-negative-value' cc1: warning: unrecognized command line option '-Wno-stringop-overflow' Segmentation fault (core dumped) make[3]: *** [/kisskb/src/scripts/Makefile.vmlinux:37: vmlinux] Error 139 make[2]: *** [/kisskb/src/Makefile:1160: vmlinux] Error 2 make[1]: *** [/kisskb/src/Makefile:240: __sub-make] Error 2 make: *** [Makefile:240: __sub-make] Error 2 Command 'make -s -j 40 ARCH=powerpc O=/kisskb/build/powerpc-next_mpc85xx_defconfig_powerpc-gcc5 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-5.5.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ' returned non-zero exit status 2. # rm -rf /kisskb/build/powerpc-next_mpc85xx_defconfig_powerpc-gcc5 # Build took: 0:01:04.892006