https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115937

--- Comment #6 from Ellery <ellery1016 at 163 dot com> ---
(In reply to Andrew Pinski from comment #5)
> So according to the linux kernel modules linker script, it should have
> combined the .plt sections.
> 
> So I am thinking this is a linux kernel issue with an older version of the
> kernel.
> 
> Can you show exact commands that are executed? to build the module when you
> invoke `make modules`? You might need to add `V=1` to get them.

Thx for reply.
So I tried compiling module using just 'make V=1'.
My Makefile is as written above.

```
[root@localhost ko_test]# make V=1
make -C /lib/modules/4.19.90.rc0.ctl2.aarch64/build M=/root/tmp/ko_test modules
make[1]: Entering directory '/usr/src/kernels/4.19.90.rc0.ctl2.aarch64'
test -e include/generated/autoconf.h -a -e include/config/auto.conf || (       
        \
echo >&2;                                                       \
echo >&2 "  ERROR: Kernel configuration is invalid.";           \
echo >&2 "         include/generated/autoconf.h or include/config/auto.conf are
missing.";\
echo >&2 "         Run 'make oldconfig && make prepare' on kernel src to fix
it.";      \
echo >&2 ;                                                      \
/bin/false)
mkdir -p /root/tmp/ko_test/.tmp_versions ; rm -f
/root/tmp/ko_test/.tmp_versions/*
make -f ./scripts/Makefile.build obj=/root/tmp/ko_test
(cat /dev/null;   echo kernel//root/tmp/ko_test/test_plt.ko;) >
/root/tmp/ko_test/modules.order
  gcc -Wp,-MD,/root/tmp/ko_test/.test_plt.o.d -nostdinc -isystem
/usr/lib/gcc/aarch64-linux-gnu/10.3.1/include -I./arch/arm64/include
-I./arch/arm64/include/generated  -I./include -I./arch/arm64/include/uapi
-I./arch/arm64/include/generated/uapi -I./include/uapi
-I./include/generated/uapi -include ./include/linux/kconfig.h -include
./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef
-Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
-fshort-wchar -Werror-implicit-function-declaration -Wno-format-security
-std=gnu89 -fno-PIE -mgeneral-regs-only -DCONFIG_AS_LSE=1
-fno-asynchronous-unwind-tables -Wno-psabi -mabi=lp64
-fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation
-Wno-format-overflow -Wno-int-in-bool-context -Wno-address-of-packed-member -O2
-Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable
-Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls
-fno-var-tracking-assignments -g -gdwarf-4 -pg
-fno-inline-functions-called-once -Wdeclaration-after-statement
-Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow
-fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack
-Werror=implicit-int -Werror=strict-prototypes -Werror=date-time
-Werror=incompatible-pointer-types -Werror=designated-init
-fmacro-prefix-map=./= -Wno-packed-not-aligned  -DMODULE 
-DKBUILD_BASENAME='"test_plt"' -DKBUILD_MODNAME='"test_plt"' -c -o
/root/tmp/ko_test/.tmp_test_plt.o /root/tmp/ko_test/test_plt.c
  if [ "-pg" = "-pg" ]; then if [ /root/tmp/ko_test/test_plt.o !=
"scripts/mod/empty.o" ]; then ./scripts/recordmcount 
"/root/tmp/ko_test/test_plt.o"; fi; fi;
make -f ./scripts/Makefile.modpost
  find /root/tmp/ko_test/.tmp_versions -name '*.mod' | xargs -r grep -h '\.ko$'
| sort -u | sed 's/\.ko$/.o/' | scripts/mod/modpost -m -a -i ./Module.symvers
-I /root/tmp/ko_test/Module.symvers  -o /root/tmp/ko_test/Module.symvers   -w 
-s -T -
  gcc -Wp,-MD,/root/tmp/ko_test/.test_plt.mod.o.d -nostdinc -isystem
/usr/lib/gcc/aarch64-linux-gnu/10.3.1/include -I./arch/arm64/include
-I./arch/arm64/include/generated  -I./include -I./arch/arm64/include/uapi
-I./arch/arm64/include/generated/uapi -I./include/uapi
-I./include/generated/uapi -include ./include/linux/kconfig.h -include
./include/linux/compiler_types.h -D__KERNEL__ -mlittle-endian -Wall -Wundef
-Wstrict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common
-fshort-wchar -Werror-implicit-function-declaration -Wno-format-security
-std=gnu89 -fno-PIE -mgeneral-regs-only -DCONFIG_AS_LSE=1
-fno-asynchronous-unwind-tables -Wno-psabi -mabi=lp64
-fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation
-Wno-format-overflow -Wno-int-in-bool-context -Wno-address-of-packed-member -O2
-Wframe-larger-than=2048 -fstack-protector-strong -Wno-unused-but-set-variable
-Wno-unused-const-variable -fno-omit-frame-pointer -fno-optimize-sibling-calls
-fno-var-tracking-assignments -g -gdwarf-4 -pg
-fno-inline-functions-called-once -Wdeclaration-after-statement
-Wno-pointer-sign -Wno-stringop-truncation -fno-strict-overflow
-fno-merge-all-constants -fmerge-constants -fno-stack-check -fconserve-stack
-Werror=implicit-int -Werror=strict-prototypes -Werror=date-time
-Werror=incompatible-pointer-types -Werror=designated-init
-fmacro-prefix-map=./= -Wno-packed-not-aligned 
-DKBUILD_BASENAME='"test_plt.mod"' -DKBUILD_MODNAME='"test_plt"' -DMODULE  -c
-o /root/tmp/ko_test/test_plt.mod.o /root/tmp/ko_test/test_plt.mod.c
  ld -r -EL  -maarch64linux -T ./scripts/module-common.lds -T
./arch/arm64/kernel/module.lds --build-id=sha1  -o
/root/tmp/ko_test/test_plt.ko /root/tmp/ko_test/test_plt.o
/root/tmp/ko_test/test_plt.mod.o ;  true
make[1]: Leaving directory '/usr/src/kernels/4.19.90.rc0.ctl2.aarch64'
```

Reply via email to