[PATCH v5 01/13] buildid: Only consider GNU notes for build ID parsing

2021-04-20 Thread Stephen Boyd
Some kernel elf files have various notes that also happen to have an elf
note type of '3', which matches NT_GNU_BUILD_ID but the note name isn't
"GNU". For example, this note trips up the existing logic:

 Owner  Data size   Description
 Xen0x0008  Unknown note type: (0x0003) description data: 00 00 00 
ff80    

Let's make sure that it is a GNU note when parsing the build ID so that
we can use this function to parse a vmlinux's build ID too.

Reported-by: Petr Mladek 
Cc: Jiri Olsa 
Cc: Alexei Starovoitov 
Cc: Jessica Yu 
Cc: Evan Green 
Cc: Hsin-Yi Wang 
Fixes: bd7525dacd7e ("bpf: Move stack_map_get_build_id into lib")
Tested-by: Petr Mladek 
Signed-off-by: Stephen Boyd 
---
 lib/buildid.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/buildid.c b/lib/buildid.c
index 6156997c3895..e014636ec3eb 100644
--- a/lib/buildid.c
+++ b/lib/buildid.c
@@ -31,6 +31,7 @@ static inline int parse_build_id(void *page_addr,
 
if (nhdr->n_type == BUILD_ID &&
nhdr->n_namesz == sizeof("GNU") &&
+   !strcmp((char *)(nhdr + 1), "GNU") &&
nhdr->n_descsz > 0 &&
nhdr->n_descsz <= BUILD_ID_SIZE_MAX) {
memcpy(build_id,
-- 
https://chromeos.dev



[PATCH 5.11 019/122] remoteproc: pru: Fix loading of GNU Binutils ELF

2021-04-19 Thread Greg Kroah-Hartman
From: Dimitar Dimitrov 

[ Upstream commit e6d9423d31b2f9bdd0220fd0584e3bb6ed2c4e52 ]

PRU port of GNU Binutils lacks support for separate address spaces.
PRU IRAM addresses are marked with artificial offset to differentiate
them from DRAM addresses. Hence remoteproc must mask IRAM addresses
coming from GNU ELF in order to get the true hardware address.

PRU firmware used for testing was the example in:
  https://github.com/dinuxbg/pru-gcc-examples/tree/master/blinking-led/pru

Signed-off-by: Dimitar Dimitrov 
Link: https://lore.kernel.org/r/20201230105005.30492-1-dimi...@dinux.eu
Signed-off-by: Bjorn Andersson 
Signed-off-by: Sasha Levin 
---
 drivers/remoteproc/pru_rproc.c | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/drivers/remoteproc/pru_rproc.c b/drivers/remoteproc/pru_rproc.c
index 16979c1cd2f4..dcb380e868df 100644
--- a/drivers/remoteproc/pru_rproc.c
+++ b/drivers/remoteproc/pru_rproc.c
@@ -450,6 +450,24 @@ static void *pru_i_da_to_va(struct pru_rproc *pru, u32 da, 
size_t len)
if (len == 0)
return NULL;
 
+   /*
+* GNU binutils do not support multiple address spaces. The GNU
+* linker's default linker script places IRAM at an arbitrary high
+* offset, in order to differentiate it from DRAM. Hence we need to
+* strip the artificial offset in the IRAM addresses coming from the
+* ELF file.
+*
+* The TI proprietary linker would never set those higher IRAM address
+* bits anyway. PRU architecture limits the program counter to 16-bit
+* word-address range. This in turn corresponds to 18-bit IRAM
+* byte-address range for ELF.
+*
+* Two more bits are added just in case to make the final 20-bit mask.
+* Idea is to have a safeguard in case TI decides to add banking
+* in future SoCs.
+*/
+   da &= 0xf;
+
if (da >= PRU_IRAM_DA &&
da + len <= PRU_IRAM_DA + pru->mem_regions[PRU_IOMEM_IRAM].size) {
offset = da - PRU_IRAM_DA;
-- 
2.30.2





Re: [next] aarch64-linux-gnu-ld: Unexpected GOT/PLT entries detected!

2021-04-16 Thread Mark Brown
On Fri, Apr 16, 2021 at 08:45:04PM +0530, Naresh Kamboju wrote:

> The arm64 allnoconfig build failed on linux -next tag 20210416

> fpsimd.c:(.text+0x144): undefined reference to `sve_load_state'
> aarch64-linux-gnu-ld: arch/arm64/kernel/fpsimd.o: in function `fpsimd_save':
> fpsimd.c:(.text+0x1f8): undefined reference to `sve_get_vl'
> aarch64-linux-gnu-ld: fpsimd.c:(.text+0x230): undefined reference to
> `sve_save_state'

This was already reported and fixed yesterday.


signature.asc
Description: PGP signature


[next] aarch64-linux-gnu-ld: Unexpected GOT/PLT entries detected!

2021-04-16 Thread Naresh Kamboju
The arm64 allnoconfig build failed on linux -next tag 20210416

kernel/sched/fair.c:8428:13: warning: 'update_nohz_stats' defined but
not used [-Wunused-function]
 static bool update_nohz_stats(struct rq *rq)
 ^
aarch64-linux-gnu-ld: Unexpected GOT/PLT entries detected!
aarch64-linux-gnu-ld: Unexpected run-time procedure linkages detected!
aarch64-linux-gnu-ld: arch/arm64/kernel/fpsimd.o: in function
`task_fpsimd_load':
fpsimd.c:(.text+0x144): undefined reference to `sve_load_state'
aarch64-linux-gnu-ld: arch/arm64/kernel/fpsimd.o: in function `fpsimd_save':
fpsimd.c:(.text+0x1f8): undefined reference to `sve_get_vl'
aarch64-linux-gnu-ld: fpsimd.c:(.text+0x230): undefined reference to
`sve_save_state'
make[1]: *** [/builds/linux/Makefile:1277: vmlinux] Error 1
make[1]: Target '__all' not remade because of errors.
make: *** [Makefile:222: __sub-make] Error 2
make: Target '__all' not remade because of errors.

Reported-by: Naresh Kamboju 

steps to reproduce:

# TuxMake is a command line tool and Python library that provides
# portable and repeatable Linux kernel builds across a variety of
# architectures, toolchains, kernel configurations, and make targets.
#
# TuxMake supports the concept of runtimes.
# See https://docs.tuxmake.org/runtimes/, for that to work it requires
# that you install podman or docker on your system.
#
# To install tuxmake on your system globally:
# sudo pip3 install -U tuxmake
#
# See https://docs.tuxmake.org/ for complete documentation.


tuxmake --runtime podman --target-arch arm64 --toolchain gcc-8
--kconfig allnoconfig

metadata:
-
git_repo: https://gitlab.com/Linaro/lkft/mirrors/next/linux-next
git_describe: next-20210415
kconfig: allnoconfig
target_arch: arm64
toolchain: gcc-8


--
Linaro LKFT
https://lkft.linaro.org


Re: [PATCH v4 01/13] buildid: Only consider GNU notes for build ID parsing

2021-04-13 Thread Petr Mladek
On Fri 2021-04-09 18:52:48, Stephen Boyd wrote:
> Some kernel elf files have various notes that also happen to have an elf
> note type of '3', which matches NT_GNU_BUILD_ID but the note name isn't
> "GNU". For example, this note trips up the existing logic:
> 
>  Owner  Data size   Description
>  Xen0x0008  Unknown note type: (0x0003) description data: 00 00 
> 00 ff80   ffff 
> 
> Let's make sure that it is a GNU note when parsing the build ID so that
> we can use this function to parse a vmlinux's build ID too.
> 
> Reported-by: Petr Mladek 
> Cc: Jiri Olsa 
> Cc: Alexei Starovoitov 
> Cc: Jessica Yu 
> Cc: Evan Green 
> Cc: Hsin-Yi Wang 
> Fixes: bd7525dacd7e ("bpf: Move stack_map_get_build_id into lib")
> Signed-off-by: Stephen Boyd 

Tested-by: Petr Mladek 

Best Regards,
Petr


[PATCH AUTOSEL 5.11 08/51] remoteproc: pru: Fix loading of GNU Binutils ELF

2021-04-12 Thread Sasha Levin
From: Dimitar Dimitrov 

[ Upstream commit e6d9423d31b2f9bdd0220fd0584e3bb6ed2c4e52 ]

PRU port of GNU Binutils lacks support for separate address spaces.
PRU IRAM addresses are marked with artificial offset to differentiate
them from DRAM addresses. Hence remoteproc must mask IRAM addresses
coming from GNU ELF in order to get the true hardware address.

PRU firmware used for testing was the example in:
  https://github.com/dinuxbg/pru-gcc-examples/tree/master/blinking-led/pru

Signed-off-by: Dimitar Dimitrov 
Link: https://lore.kernel.org/r/20201230105005.30492-1-dimi...@dinux.eu
Signed-off-by: Bjorn Andersson 
Signed-off-by: Sasha Levin 
---
 drivers/remoteproc/pru_rproc.c | 18 ++
 1 file changed, 18 insertions(+)

diff --git a/drivers/remoteproc/pru_rproc.c b/drivers/remoteproc/pru_rproc.c
index 2667919d76b3..5fad787ba012 100644
--- a/drivers/remoteproc/pru_rproc.c
+++ b/drivers/remoteproc/pru_rproc.c
@@ -450,6 +450,24 @@ static void *pru_i_da_to_va(struct pru_rproc *pru, u32 da, 
size_t len)
if (len == 0)
return NULL;
 
+   /*
+* GNU binutils do not support multiple address spaces. The GNU
+* linker's default linker script places IRAM at an arbitrary high
+* offset, in order to differentiate it from DRAM. Hence we need to
+* strip the artificial offset in the IRAM addresses coming from the
+* ELF file.
+*
+* The TI proprietary linker would never set those higher IRAM address
+* bits anyway. PRU architecture limits the program counter to 16-bit
+* word-address range. This in turn corresponds to 18-bit IRAM
+* byte-address range for ELF.
+*
+* Two more bits are added just in case to make the final 20-bit mask.
+* Idea is to have a safeguard in case TI decides to add banking
+* in future SoCs.
+*/
+   da &= 0xf;
+
if (da >= PRU_IRAM_DA &&
da + len <= PRU_IRAM_DA + pru->mem_regions[PRU_IOMEM_IRAM].size) {
offset = da - PRU_IRAM_DA;
-- 
2.30.2



[PATCH v4 01/13] buildid: Only consider GNU notes for build ID parsing

2021-04-09 Thread Stephen Boyd
Some kernel elf files have various notes that also happen to have an elf
note type of '3', which matches NT_GNU_BUILD_ID but the note name isn't
"GNU". For example, this note trips up the existing logic:

 Owner  Data size   Description
 Xen0x0008  Unknown note type: (0x0003) description data: 00 00 00 
ff80    

Let's make sure that it is a GNU note when parsing the build ID so that
we can use this function to parse a vmlinux's build ID too.

Reported-by: Petr Mladek 
Cc: Jiri Olsa 
Cc: Alexei Starovoitov 
Cc: Jessica Yu 
Cc: Evan Green 
Cc: Hsin-Yi Wang 
Fixes: bd7525dacd7e ("bpf: Move stack_map_get_build_id into lib")
Signed-off-by: Stephen Boyd 
---
 lib/buildid.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/lib/buildid.c b/lib/buildid.c
index 6156997c3895..e014636ec3eb 100644
--- a/lib/buildid.c
+++ b/lib/buildid.c
@@ -31,6 +31,7 @@ static inline int parse_build_id(void *page_addr,
 
if (nhdr->n_type == BUILD_ID &&
nhdr->n_namesz == sizeof("GNU") &&
+   !strcmp((char *)(nhdr + 1), "GNU") &&
nhdr->n_descsz > 0 &&
nhdr->n_descsz <= BUILD_ID_SIZE_MAX) {
memcpy(build_id,
-- 
https://chromeos.dev



aarch64-linux-gnu-ld: Unexpected GOT/PLT entries detected!

2021-04-02 Thread kernel test robot
Hi Kees,

FYI, the error/warning still remains.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   1678e493d530e7977cce34e59a86bb86f3c5631e
commit: be2881824ae9eb92a35b094f734f9ca7339ddf6d arm64/build: Assert for 
unwanted sections
date:   7 months ago
config: arm64-randconfig-r033-20210401 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
1c268a8ff4e90a85d0e634350b1104080614cf2b)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=be2881824ae9eb92a35b094f734f9ca7339ddf6d
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout be2881824ae9eb92a35b094f734f9ca7339ddf6d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All errors (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: -z norelro ignored
>> aarch64-linux-gnu-ld: Unexpected GOT/PLT entries detected!
>> aarch64-linux-gnu-ld: Unexpected run-time procedure linkages detected!
   aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_mode':
   lsm.c:(.text+0x460): undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: security/apparmor/lsm.o: in function `param_get_audit':
   lsm.c:(.text+0x8cc): undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/xen/sys-hypervisor.o: in function 
`buildid_show':
   sys-hypervisor.c:(.text+0x52c): undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/tty/tty_io.o: in function `tty_line_name':
   tty_io.c:(.text+0x7760): undefined reference to `stpcpy'
   aarch64-linux-gnu-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function 
`rcar_du_crtc_atomic_enable':
   rcar_du_crtc.c:(.text+0x2ff0): undefined reference to `rcar_lvds_clk_enable'
   aarch64-linux-gnu-ld: drivers/gpu/drm/rcar-du/rcar_du_crtc.o: in function 
`rcar_du_crtc_atomic_disable':
   rcar_du_crtc.c:(.text+0x3810): undefined reference to `rcar_lvds_clk_disable'
   aarch64-linux-gnu-ld: drivers/gpu/drm/rcar-du/rcar_du_drv.o: in function 
`rcar_du_init':
   rcar_du_drv.c:(.init.text+0x1c): undefined reference to `rcar_du_of_init'
   aarch64-linux-gnu-ld: drivers/gpu/drm/rcar-du/rcar_du_encoder.o: in function 
`rcar_du_encoder_init':
   rcar_du_encoder.c:(.text+0x204): undefined reference to `rcar_lvds_dual_link'

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org


.config.gz
Description: application/gzip


Merge Linux and Gnu as Inu? Was Re: For those who did not get this yet, Fair Pay discussion is over, and concluded with LCPU.

2021-03-19 Thread Ywe Cærlyn
Even better Inu OS, and Inu Licence, merges the relevant parts of Linux 
and Gnu, drops the X and rejects other irrelevant parts. This will be 
the angle I support.


Serenity.
Ywe Cærlyn
https://www.youtube.com/channel/UC3BcyFY1Bphc7smGH-IGLVw/featured

Den 17.03.2021 10:28, skrev Ywe Cærlyn:
Something that occured to me also, why not just change licence to NiX 
licence? NiX is a generally known name of open source unix derivative 
variants.


Serenity.

Den 17.03.2021 08:14, skrev Ywe Cærlyn:
I got some mails on some old posts here, please update: Fair Pay 
discussion is over, and concluded with LCPU.


My media chan is here: 
https://www.youtube.com/channel/UC3BcyFY1Bphc7smGH-IGLVw Bit Qabbi, 
which always has been about the monotheistic angle, now also with the 
term Qabbi, taking inspiration from the muslim shaped Qaba, for design.


Knowing the muslim debate follows, we have made a joke reply to this, 
seeing that it is mostly based in a deviant Eid, which I am not 
interested in. https://www.youtube.com/channel/UCDDmHQv0dTHPjdwJwKrjLqQ


A discussion on reality goes to the standard expression of Alla, and 
this should then be the goal, and is already on my projects.


Trance actually was this in the 90s, but when it reached that stage, 
many became confused, and it mostly failed. (While it did actually 
represent reality in media a few times). I was ready for this and DID

become a muslim.

LCPU representing natural progression in computing space.

Serenity,
Ywe Cærlyn
(Best read in Cursive).




RE: [PATCH RESEND] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-03-18 Thread David Laight
From: Valdis Kletnieks
> Sent: 18 March 2021 11:56
> 
> On Thu, 18 Mar 2021 11:41:29 -, David Laight said:
> 
> > That gcc bug just implies you need a space after "xxx".
> > That is easily fixable in the sources.
> 
> It's not quite that simple.
> 
>In file included from 
> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/tm.h:27,
> from 
> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/gcc-plugin.h:31,
> from 
> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/plugin.h:23,
> from scripts/gcc-plugins/gcc-common.h:9,
> from scripts/gcc-plugins/latent_entropy_plugin.c:78:
> >> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:102:21: 
> >> warning: invalid suffix on
> literal; C++11 requires a space between literal and string macro 
> [-Wliteral-suffix]
>fprintf ((FILE), "%s"HOST_WIDE_INT_PRINT_UNSIGNED"\n",\
> 
> The problem isn't in a kernel source file...  
...

Could you pass -Wno-literal-suffix on plugin builds?

Might be less faff than changing the -std=xxx' parameter.

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, 
UK
Registration No: 1397386 (Wales)



Re: [PATCH RESEND] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-03-18 Thread Valdis Klētnieks
On Thu, 18 Mar 2021 11:41:29 -, David Laight said:

> That gcc bug just implies you need a space after "xxx".
> That is easily fixable in the sources.

It's not quite that simple.

   In file included from /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/tm.h:27,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/gcc-plugin.h:31,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/plugin.h:23,
from scripts/gcc-plugins/gcc-common.h:9,
from scripts/gcc-plugins/latent_entropy_plugin.c:78:
>> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:102:21: 
>> warning: invalid suffix on literal; C++11 requires a space between literal 
>> and string macro [-Wliteral-suffix]
   fprintf ((FILE), "%s"HOST_WIDE_INT_PRINT_UNSIGNED"\n",\

The problem isn't in a kernel source file...  To quote an earlier message of 
mine:

> It looks like it's not a kernel source tree issue, it's a g++ issue fixed in 
> g++ 6 and later.

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

> And it looks like there was an intent to backport it to 4.9 and 5.4:
> https://gcc.gnu.org/legacy-ml/gcc-patches/2016-02/msg01409.html

> The bugtracker doesn't show an equivalent for 69959 being closed against 
> 4.9.x or 5.[56],

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63254 has a patch for one of the
> gcc-supplied files that tosses the warning, but that way lies madness...




pgpKAMpPEyXho.pgp
Description: PGP signature


Re: [PATCH RESEND] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-03-18 Thread Valdis Klētnieks
On Thu, 18 Mar 2021 18:07:28 +0900, Masahiro Yamada said:

> We can require GCC 6+ for building GCC plugins.

> +   depends on CC_IS_GCC && GCC_VERSION >= 6

I'd be OK with that personally, but the question is whether
any gcc 4.9 or 5.x users are using plugins.  That's a bit above
my pay grade.  Kees?  Do we have any data on that? (All I know
is that there is at least one, because they tripped over the GCC bug
that prompted the second patch)

> BTW, the commit message mentions that
> the issues only happen on GCC 4 and 5,
> but the added code was:
>
> GCC_FLAVOR = $(call cc-ifversion, -ge, 1100, 11, 98)
>
>   instead of
>
> GCC_FLAVOR = $(call cc-ifversion, -ge, 600, 11, 98)
>
> So, this patch is also requiring to cover two standards:
>
> GCC_VERSION >= 11  :  -std=gnu++11
> GCC_VERSION <  11  : -std=gnu++98

I chose 1100 so that everything from 4.9 to 10 would keep getting
handed gnu++98 the way they had been, and only change it for
gcc11.


pgpWrthr3a1BK.pgp
Description: PGP signature


RE: [PATCH RESEND] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-03-18 Thread David Laight
From: Valdis Kletnieks
> Sent: 18 March 2021 06:02
> 
> On Wed, 17 Mar 2021 22:52:56 -0700, Kees Cook said:
> > On Mon, Mar 08, 2021 at 03:40:21AM -0500, Valdis KlDtnieks wrote:
> > > It turns out that older gcc (4.9 and 5.4) have gnu++11 support, but
> > > due to a gcc bug fixed in gcc6, throw errors during the build.
> > > The relevant gcc bug is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69959
> > >
> > > Version the option based on what gcc we're using.
> >
> > Is there a better way to detect this than with version checking?
> 
> Not really.  gcc 11 needs --std=gnu++11 to build it.  And although
> gcc4 and gcc5 *claim* to support it, there's a known bug, so we *can't*
> feed gnu++11 to them.  We can check versions..

That gcc bug just implies you need a space after "xxx".
That is easily fixable in the sources.
Is there another problem?

(Apart from the standards committee breaking everything again.)

David

-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, 
UK
Registration No: 1397386 (Wales)



Re: [PATCH RESEND] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-03-18 Thread Masahiro Yamada
On Thu, Mar 18, 2021 at 3:26 PM Miguel Ojeda
 wrote:
>
> On Thu, Mar 18, 2021 at 7:03 AM Valdis Klētnieks
>  wrote:
> >
> > Or declare that gcc6 is the minimum for building the kernel.
>
> Cc'ing some interested people in raising GCC's version for one reason
> or another, so that we put this as another one in the pile of reasons
> :-)
>
> https://lore.kernel.org/lkml/CAHk-=wjgvt1ei72btreh5fgfqykvh-ayt56-7ybt8lcprj7...@mail.gmail.com/
>
> Cheers,
> Miguel


Previously we were discussing raising the min GCC
version 5.x,  but not further at this point of time.


We can require GCC 6+ for building GCC plugins.


--- a/scripts/gcc-plugins/Kconfig
+++ b/scripts/gcc-plugins/Kconfig
@@ -8,7 +8,7 @@ config HAVE_GCC_PLUGINS
 menuconfig GCC_PLUGINS
bool "GCC plugins"
depends on HAVE_GCC_PLUGINS
-   depends on CC_IS_GCC
+   depends on CC_IS_GCC && GCC_VERSION >= 6
depends on $(success,test -e $(shell,$(CC)
-print-file-name=plugin)/include/plugin-version.h)
default y
help





BTW, the commit message mentions that
the issues only happen on GCC 4 and 5,
but the added code was:

GCC_FLAVOR = $(call cc-ifversion, -ge, 1100, 11, 98)

  instead of

GCC_FLAVOR = $(call cc-ifversion, -ge, 600, 11, 98)



So, this patch is also requiring to cover two standards:

GCC_VERSION >= 11  :  -std=gnu++11
GCC_VERSION <  11  : -std=gnu++98




-- 
Best Regards
Masahiro Yamada


Re: [PATCH RESEND] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-03-17 Thread Miguel Ojeda
On Thu, Mar 18, 2021 at 7:03 AM Valdis Klētnieks
 wrote:
>
> Or declare that gcc6 is the minimum for building the kernel.

Cc'ing some interested people in raising GCC's version for one reason
or another, so that we put this as another one in the pile of reasons
:-)

https://lore.kernel.org/lkml/CAHk-=wjgvt1ei72btreh5fgfqykvh-ayt56-7ybt8lcprj7...@mail.gmail.com/

Cheers,
Miguel


Re: [PATCH RESEND] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-03-17 Thread Valdis Klētnieks
On Wed, 17 Mar 2021 22:52:56 -0700, Kees Cook said:
> On Mon, Mar 08, 2021 at 03:40:21AM -0500, Valdis Klētnieks wrote:
> > It turns out that older gcc (4.9 and 5.4) have gnu++11 support, but
> > due to a gcc bug fixed in gcc6, throw errors during the build.
> > The relevant gcc bug is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69959
> >
> > Version the option based on what gcc we're using.
>
> Is there a better way to detect this than with version checking?

Not really.  gcc 11 needs --std=gnu++11 to build it.  And although
gcc4 and gcc5 *claim* to support it, there's a known bug, so we *can't*
feed gnu++11 to them.  We can check versions..

Or heave gcc-plugins over the side entirely..
Or declare that gcc6 is the minimum for building the kernel.

But if we support gcc4/5 *and* gcc11 to build gcc-plugins, we have to 
version-check.

(Unrelated - the patch has grown a merge conflict since I sent it, let me
know if you want an updated one, or if it's OK as is


pgpP_B8IN3TEc.pgp
Description: PGP signature


Re: [PATCH RESEND] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-03-17 Thread Kees Cook
On Mon, Mar 08, 2021 at 03:40:21AM -0500, Valdis Klētnieks wrote:
> It turns out that older gcc (4.9 and 5.4) have gnu++11 support, but
> due to a gcc bug fixed in gcc6, throw errors during the build.
> The relevant gcc bug is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69959
> 
> Version the option based on what gcc we're using.

Is there a better way to detect this than with version checking?

-Kees

> 
> Signed-off-by: Valdis Kletnieks 
> Fixes: 27c287b41659 ("gcc-plugins: fix gcc 11 indigestion with plugins...")
> ---
> diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile
> index b5487cce69e8..cc779973724a 100644
> --- a/scripts/gcc-plugins/Makefile
> +++ b/scripts/gcc-plugins/Makefile
> @@ -21,8 +21,11 @@ always-y += $(GCC_PLUGIN)
>  
>  GCC_PLUGINS_DIR = $(shell $(CC) -print-file-name=plugin)
>  
> +# need gnu++11 for gcc 11, but 4.9 and 5.4 need gnu++98
> +GCC_FLAVOR = $(call cc-ifversion, -ge, 1100, 11, 98)
> +
>  plugin_cxxflags  = -Wp,-MMD,$(depfile) $(KBUILD_HOSTCXXFLAGS) -fPIC \
> --I $(GCC_PLUGINS_DIR)/include -I $(obj) -std=gnu++11 \
> +-I $(GCC_PLUGINS_DIR)/include -I $(obj) 
> -std=gnu++$(GCC_FLAVOR) \
>  -fno-rtti -fno-exceptions -fasynchronous-unwind-tables \
>  -ggdb -Wno-narrowing -Wno-unused-variable \
>  -Wno-format-diag
> 
> 

-- 
Kees Cook


[PATCH v2 2/2] Makefile: Only specify '--prefix=' when building with clang + GNU as

2021-03-09 Thread Nathan Chancellor
When building with LLVM_IAS=1, there is no point to specifying
'--prefix=' because that flag is only used to find GNU cross tools,
which will not be used indirectly when using the integrated assembler.
All of the tools are invoked directly from PATH or a full path specified
via the command line, which does not depend on the value of '--prefix='.

Sharing commands to reproduce issues becomes a little bit easier without
a '--prefix=' value because that '--prefix=' value is specific to a
user's machine due to it being an absolute path.

Some further notes from Fangrui Song:

  clang can spawn GNU as (if -f?no-integrated-as is specified) and GNU
  objcopy (-f?no-integrated-as and -gsplit-dwarf and -g[123]).
  objcopy is only used for GNU as assembled object files.
  With integrated assembler, the object file streamer creates .o and
  .dwo simultaneously.
  With GNU as, two objcopy commands are needed to extract .debug*.dwo to
  .dwo files && another command to remove .debug*.dwo sections.

A small consequence of this change (to keep things simple) is that
'--prefix=' will always be specified now, even with a native build, when
it was not before. This should not be an issue due to the way that the
Makefile searches for the prefix (based on elfedit's location). This
ends up improving the experience for host builds because PATH is better
respected and matches GCC's behavior more closely. See the below thread
for more details:

https://lore.kernel.org/r/20210205213651.GA16907@Ryzen-5-4500U.localdomain/

Signed-off-by: Nathan Chancellor 
---

v1 -> v2:

* Fix position of -no-integrated-as flag to fix native build (thanks to
  Masahiro for catching it and sorry for the breakage).

* Add Fangrui's comments about what GNU binaries clang can spawn at
  Masahiro's request.

* Reword commit message.

I did not carry tags forward so that people could re-review and test.

 Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index 182e93d91198..15292a6d63f5 100644
--- a/Makefile
+++ b/Makefile
@@ -566,11 +566,11 @@ CC_VERSION_TEXT = $(shell $(CC) --version 2>/dev/null | 
head -n 1 | sed 's/\#//g
 ifneq ($(findstring clang,$(CC_VERSION_TEXT)),)
 ifneq ($(CROSS_COMPILE),)
 CLANG_FLAGS+= --target=$(notdir $(CROSS_COMPILE:%-=%))
-GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
-CLANG_FLAGS+= --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
 endif
 ifneq ($(LLVM_IAS),1)
 CLANG_FLAGS+= -no-integrated-as
+GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
+CLANG_FLAGS+= --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
 endif
 CLANG_FLAGS+= -Werror=unknown-warning-option
 KBUILD_CFLAGS  += $(CLANG_FLAGS)
-- 
2.31.0.rc1



Re: [PATCH 2/2] Makefile: Only specify '--prefix=' when building with clang + GNU as

2021-03-09 Thread Masahiro Yamada
On Wed, Mar 10, 2021 at 4:55 AM Masahiro Yamada  wrote:
>
> On Wed, Mar 3, 2021 at 6:07 AM Nathan Chancellor  wrote:
> >
> > When building with LLVM_IAS=1, there is no point to specifying
> > '--prefix=' because that flag is only used to find the cross assembler,
> > which is clang itself when building with LLVM_IAS=1. All of the other
> > tools are invoked directly from PATH or a full path specified via the
> > command line, which does not depend on the value of '--prefix='.
> >
> > Sharing commands to reproduce issues becomes a little bit easier without
> > a '--prefix=' value because that '--prefix=' value is specific to a
> > user's machine due to it being an absolute path.
> >
> > Signed-off-by: Nathan Chancellor 
>
>
> I was tricked by a couple of Reviewed-by/Tested-by tags.
>
> With this patch applied, the code looks as follows:
>
>
> ifneq ($(CROSS_COMPILE),)
> CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%))
> ifneq ($(LLVM_IAS),1)
> GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
> CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
> CLANG_FLAGS += -no-integrated-as
> endif
> endif
>
>
> For the native build (empty CROSS_COMPILE),
> you cannot add -no-integrated-as.
>
>
> I dropped this from my tree.
>
>
>
> Is the correct code as follows?
>
>
> ifneq ($(LLVM_IAS),1)
> CLANG_FLAGS += -no-integrated-as
> ifneq ($(CROSS_COMPILE),)
> CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%))
> GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
> CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
> endif
> endif
>
>
>
>


If you send v2, can you include comments from Fangrui Song?



Fangrui Song:
  clang can spawn GNU as (if -f?no-integrated-as is specified) and GNU
  objcopy (-f?no-integrated-as and -gsplit-dwarf and -g[123]).
  objcopy is only used for GNU as assembled object files.
  With integrated assembler, the object file streamer creates .o and
  .dwo simultaneously.
  With GNU as, two objcopy commands are needed to extract .debug*.dwo to
  .dwo files && another command to remove .debug*.dwo sections.



I did not know the objtool part, and I think it is worth recording.


-- 
Best Regards
Masahiro Yamada


Re: [PATCH 2/2] Makefile: Only specify '--prefix=' when building with clang + GNU as

2021-03-09 Thread Masahiro Yamada
On Wed, Mar 3, 2021 at 6:07 AM Nathan Chancellor  wrote:
>
> When building with LLVM_IAS=1, there is no point to specifying
> '--prefix=' because that flag is only used to find the cross assembler,
> which is clang itself when building with LLVM_IAS=1. All of the other
> tools are invoked directly from PATH or a full path specified via the
> command line, which does not depend on the value of '--prefix='.
>
> Sharing commands to reproduce issues becomes a little bit easier without
> a '--prefix=' value because that '--prefix=' value is specific to a
> user's machine due to it being an absolute path.
>
> Signed-off-by: Nathan Chancellor 


I was tricked by a couple of Reviewed-by/Tested-by tags.

With this patch applied, the code looks as follows:


ifneq ($(CROSS_COMPILE),)
CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%))
ifneq ($(LLVM_IAS),1)
GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
CLANG_FLAGS += -no-integrated-as
endif
endif


For the native build (empty CROSS_COMPILE),
you cannot add -no-integrated-as.


I dropped this from my tree.



Is the correct code as follows?


ifneq ($(LLVM_IAS),1)
CLANG_FLAGS += -no-integrated-as
ifneq ($(CROSS_COMPILE),)
CLANG_FLAGS += --target=$(notdir $(CROSS_COMPILE:%-=%))
GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
CLANG_FLAGS += --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
endif
endif






> ---
>  Makefile | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index c20f0ad8be73..0413b8c594cd 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -566,12 +566,12 @@ CC_VERSION_TEXT = $(shell $(CC) --version 2>/dev/null | 
> head -n 1 | sed 's/\#//g
>  ifneq ($(findstring clang,$(CC_VERSION_TEXT)),)
>  ifneq ($(CROSS_COMPILE),)
>  CLANG_FLAGS+= --target=$(notdir $(CROSS_COMPILE:%-=%))
> +ifneq ($(LLVM_IAS),1)
>  GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
>  CLANG_FLAGS+= --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
> -endif
> -ifneq ($(LLVM_IAS),1)
>  CLANG_FLAGS+= -no-integrated-as
>  endif
> +endif
>  CLANG_FLAGS+= -Werror=unknown-warning-option
>  KBUILD_CFLAGS  += $(CLANG_FLAGS)
>  KBUILD_AFLAGS  += $(CLANG_FLAGS)
> --
> 2.31.0.rc0.75.gec125d1bc1
>


-- 
Best Regards
Masahiro Yamada


[PATCH RESEND] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-03-08 Thread Valdis Klētnieks
It turns out that older gcc (4.9 and 5.4) have gnu++11 support, but
due to a gcc bug fixed in gcc6, throw errors during the build.
The relevant gcc bug is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69959

Version the option based on what gcc we're using.

Signed-off-by: Valdis Kletnieks 
Fixes: 27c287b41659 ("gcc-plugins: fix gcc 11 indigestion with plugins...")
---
diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile
index b5487cce69e8..cc779973724a 100644
--- a/scripts/gcc-plugins/Makefile
+++ b/scripts/gcc-plugins/Makefile
@@ -21,8 +21,11 @@ always-y += $(GCC_PLUGIN)
 
 GCC_PLUGINS_DIR = $(shell $(CC) -print-file-name=plugin)
 
+# need gnu++11 for gcc 11, but 4.9 and 5.4 need gnu++98
+GCC_FLAVOR = $(call cc-ifversion, -ge, 1100, 11, 98)
+
 plugin_cxxflags= -Wp,-MMD,$(depfile) $(KBUILD_HOSTCXXFLAGS) -fPIC \
-  -I $(GCC_PLUGINS_DIR)/include -I $(obj) -std=gnu++11 \
+  -I $(GCC_PLUGINS_DIR)/include -I $(obj) 
-std=gnu++$(GCC_FLAVOR) \
   -fno-rtti -fno-exceptions -fasynchronous-unwind-tables \
   -ggdb -Wno-narrowing -Wno-unused-variable \
   -Wno-format-diag




Re: [PATCH 2/2] Makefile: Only specify '--prefix=' when building with clang + GNU as

2021-03-02 Thread Nick Desaulniers
On Tue, Mar 2, 2021 at 2:09 PM Nick Desaulniers  wrote:
>
> On Tue, Mar 2, 2021 at 2:02 PM Fangrui Song  wrote:
> >
> > On 2021-03-02, Nathan Chancellor wrote:
> > >When building with LLVM_IAS=1, there is no point to specifying
> > >'--prefix=' because that flag is only used to find the cross assembler,
> > >which is clang itself when building with LLVM_IAS=1. All of the other
> > >tools are invoked directly from PATH or a full path specified via the
> > >command line, which does not depend on the value of '--prefix='.
> > >
> > >Sharing commands to reproduce issues becomes a little bit easier without
> > >a '--prefix=' value because that '--prefix=' value is specific to a
> > >user's machine due to it being an absolute path.
> > >
> > >Signed-off-by: Nathan Chancellor 
> >
> > Reviewed-by: Fangrui Song 
> >
> > clang can spawn GNU as (if -f?no-integrated-as is specified) and GNU
> > objcopy (-f?no-integrated-as and -gsplit-dwarf and -g[123]).
>
> But -g get's set via CONFIG_DEBUG_INFO and -gsplit-dwarf by
> DEBUG_INFO_SPLIT.  So if we say:
> $ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make CC=clang LLVM_IAS=1
>
> So cross compile, use clang, use the integrated assembler (ie. with
> this change, don't set --prefix), with either of the two above
> configs, which objcopy get's exec'd?

Ok, I spoke to Fangrui more offline, and probably misread his
response. From our chat:
```
Fangrui:
objcopy is only used for GNU as assembled object files
With integrated assembler, the object file streamer creates .o and
.dwo simultaneously
With GNU as, two objcopy commands are needed to extract .debug*.dwo to
.dwo files &&& another command to remove .debug*.dwo sections
```

Reviewed-by: Nick Desaulniers 
Tested-by: Nick Desaulniers 

I ran this series through a mix of LLVM=1 vs CC=clang, LLVM_IAS=1 vs
unset, CROSS_COMPILE vs not, without issue.

>
> >
> > With LLVM_IAS=1, these cases are ruled out.
>
>
>
> --
> Thanks,
> ~Nick Desaulniers



-- 
Thanks,
~Nick Desaulniers


Re: [PATCH 2/2] Makefile: Only specify '--prefix=' when building with clang + GNU as

2021-03-02 Thread Nick Desaulniers
On Tue, Mar 2, 2021 at 2:02 PM Fangrui Song  wrote:
>
> On 2021-03-02, Nathan Chancellor wrote:
> >When building with LLVM_IAS=1, there is no point to specifying
> >'--prefix=' because that flag is only used to find the cross assembler,
> >which is clang itself when building with LLVM_IAS=1. All of the other
> >tools are invoked directly from PATH or a full path specified via the
> >command line, which does not depend on the value of '--prefix='.
> >
> >Sharing commands to reproduce issues becomes a little bit easier without
> >a '--prefix=' value because that '--prefix=' value is specific to a
> >user's machine due to it being an absolute path.
> >
> >Signed-off-by: Nathan Chancellor 
>
> Reviewed-by: Fangrui Song 
>
> clang can spawn GNU as (if -f?no-integrated-as is specified) and GNU
> objcopy (-f?no-integrated-as and -gsplit-dwarf and -g[123]).

But -g get's set via CONFIG_DEBUG_INFO and -gsplit-dwarf by
DEBUG_INFO_SPLIT.  So if we say:
$ ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- make CC=clang LLVM_IAS=1

So cross compile, use clang, use the integrated assembler (ie. with
this change, don't set --prefix), with either of the two above
configs, which objcopy get's exec'd?

>
> With LLVM_IAS=1, these cases are ruled out.



-- 
Thanks,
~Nick Desaulniers


Re: [PATCH 2/2] Makefile: Only specify '--prefix=' when building with clang + GNU as

2021-03-02 Thread Fangrui Song

On 2021-03-02, Nathan Chancellor wrote:

When building with LLVM_IAS=1, there is no point to specifying
'--prefix=' because that flag is only used to find the cross assembler,
which is clang itself when building with LLVM_IAS=1. All of the other
tools are invoked directly from PATH or a full path specified via the
command line, which does not depend on the value of '--prefix='.

Sharing commands to reproduce issues becomes a little bit easier without
a '--prefix=' value because that '--prefix=' value is specific to a
user's machine due to it being an absolute path.

Signed-off-by: Nathan Chancellor 


Reviewed-by: Fangrui Song 

clang can spawn GNU as (if -f?no-integrated-as is specified) and GNU
objcopy (-f?no-integrated-as and -gsplit-dwarf and -g[123]).

With LLVM_IAS=1, these cases are ruled out.


[PATCH 2/2] Makefile: Only specify '--prefix=' when building with clang + GNU as

2021-03-02 Thread Nathan Chancellor
When building with LLVM_IAS=1, there is no point to specifying
'--prefix=' because that flag is only used to find the cross assembler,
which is clang itself when building with LLVM_IAS=1. All of the other
tools are invoked directly from PATH or a full path specified via the
command line, which does not depend on the value of '--prefix='.

Sharing commands to reproduce issues becomes a little bit easier without
a '--prefix=' value because that '--prefix=' value is specific to a
user's machine due to it being an absolute path.

Signed-off-by: Nathan Chancellor 
---
 Makefile | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Makefile b/Makefile
index c20f0ad8be73..0413b8c594cd 100644
--- a/Makefile
+++ b/Makefile
@@ -566,12 +566,12 @@ CC_VERSION_TEXT = $(shell $(CC) --version 2>/dev/null | 
head -n 1 | sed 's/\#//g
 ifneq ($(findstring clang,$(CC_VERSION_TEXT)),)
 ifneq ($(CROSS_COMPILE),)
 CLANG_FLAGS+= --target=$(notdir $(CROSS_COMPILE:%-=%))
+ifneq ($(LLVM_IAS),1)
 GCC_TOOLCHAIN_DIR := $(dir $(shell which $(CROSS_COMPILE)elfedit))
 CLANG_FLAGS+= --prefix=$(GCC_TOOLCHAIN_DIR)$(notdir $(CROSS_COMPILE))
-endif
-ifneq ($(LLVM_IAS),1)
 CLANG_FLAGS+= -no-integrated-as
 endif
+endif
 CLANG_FLAGS+= -Werror=unknown-warning-option
 KBUILD_CFLAGS  += $(CLANG_FLAGS)
 KBUILD_AFLAGS  += $(CLANG_FLAGS)
-- 
2.31.0.rc0.75.gec125d1bc1



Re: [PATCH] drivers: gnu: drm: i915: gvt: Fixed couple of spellings in the file gtt.c

2021-02-28 Thread Zhenyu Wang
On 2021.02.22 06:22:37 -0800, Randy Dunlap wrote:
> On 2/22/21 6:21 AM, Randy Dunlap wrote:
> > On 2/22/21 12:18 AM, Bhaskar Chowdhury wrote:
> >>
> >> s/negtive/negative/
> >> s/possilbe/possible/
> >>
> >> Signed-off-by: Bhaskar Chowdhury 
> > 
> > Acked-by: Randy Dunlap 
> 
> except the Subject has a typo in it.
> s/gnu/gpu/
>

And pls follow gvt subsys's subject line as drm/i915/gvt: xxx in future.
I'll fix the title and queue this.

Thanks!

> >> ---
> >>  drivers/gpu/drm/i915/gvt/gtt.c | 4 ++--
> >>  1 file changed, 2 insertions(+), 2 deletions(-)
> >>
> >> diff --git a/drivers/gpu/drm/i915/gvt/gtt.c 
> >> b/drivers/gpu/drm/i915/gvt/gtt.c
> >> index 897c007ea96a..dc5834bf4de2 100644
> >> --- a/drivers/gpu/drm/i915/gvt/gtt.c
> >> +++ b/drivers/gpu/drm/i915/gvt/gtt.c
> >> @@ -1159,8 +1159,8 @@ static inline void 
> >> ppgtt_generate_shadow_entry(struct intel_gvt_gtt_entry *se,
> >>   * @vgpu: target vgpu
> >>   * @entry: target pfn's gtt entry
> >>   *
> >> - * Return 1 if 2MB huge gtt shadowing is possilbe, 0 if miscondition,
> >> - * negtive if found err.
> >> + * Return 1 if 2MB huge gtt shadowing is possible, 0 if miscondition,
> >> + * negative if found err.
> >>   */
> >>  static int is_2MB_gtt_possible(struct intel_vgpu *vgpu,
> >>struct intel_gvt_gtt_entry *entry)
> >> --
> > 
> > 
> 
> 
> -- 
> ~Randy
> Reported-by: Randy Dunlap 
> ___
> intel-gvt-dev mailing list
> intel-gvt-...@lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/intel-gvt-dev


signature.asc
Description: PGP signature


Re: [PATCH] drivers: gnu: drm: i915: gvt: Fixed couple of spellings in the file gtt.c

2021-02-22 Thread Randy Dunlap
On 2/22/21 6:21 AM, Randy Dunlap wrote:
> On 2/22/21 12:18 AM, Bhaskar Chowdhury wrote:
>>
>> s/negtive/negative/
>> s/possilbe/possible/
>>
>> Signed-off-by: Bhaskar Chowdhury 
> 
> Acked-by: Randy Dunlap 

except the Subject has a typo in it.
s/gnu/gpu/

>> ---
>>  drivers/gpu/drm/i915/gvt/gtt.c | 4 ++--
>>  1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
>> index 897c007ea96a..dc5834bf4de2 100644
>> --- a/drivers/gpu/drm/i915/gvt/gtt.c
>> +++ b/drivers/gpu/drm/i915/gvt/gtt.c
>> @@ -1159,8 +1159,8 @@ static inline void ppgtt_generate_shadow_entry(struct 
>> intel_gvt_gtt_entry *se,
>>   * @vgpu: target vgpu
>>   * @entry: target pfn's gtt entry
>>   *
>> - * Return 1 if 2MB huge gtt shadowing is possilbe, 0 if miscondition,
>> - * negtive if found err.
>> + * Return 1 if 2MB huge gtt shadowing is possible, 0 if miscondition,
>> + * negative if found err.
>>   */
>>  static int is_2MB_gtt_possible(struct intel_vgpu *vgpu,
>>  struct intel_gvt_gtt_entry *entry)
>> --
> 
> 


-- 
~Randy
Reported-by: Randy Dunlap 


Re: [PATCH] drivers: gnu: drm: i915: gvt: Fixed couple of spellings in the file gtt.c

2021-02-22 Thread Randy Dunlap
On 2/22/21 12:18 AM, Bhaskar Chowdhury wrote:
> 
> s/negtive/negative/
> s/possilbe/possible/
> 
> Signed-off-by: Bhaskar Chowdhury 

Acked-by: Randy Dunlap 

> ---
>  drivers/gpu/drm/i915/gvt/gtt.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
> index 897c007ea96a..dc5834bf4de2 100644
> --- a/drivers/gpu/drm/i915/gvt/gtt.c
> +++ b/drivers/gpu/drm/i915/gvt/gtt.c
> @@ -1159,8 +1159,8 @@ static inline void ppgtt_generate_shadow_entry(struct 
> intel_gvt_gtt_entry *se,
>   * @vgpu: target vgpu
>   * @entry: target pfn's gtt entry
>   *
> - * Return 1 if 2MB huge gtt shadowing is possilbe, 0 if miscondition,
> - * negtive if found err.
> + * Return 1 if 2MB huge gtt shadowing is possible, 0 if miscondition,
> + * negative if found err.
>   */
>  static int is_2MB_gtt_possible(struct intel_vgpu *vgpu,
>   struct intel_gvt_gtt_entry *entry)
> --


-- 
~Randy



[PATCH] drivers: gnu: drm: i915: gvt: Fixed couple of spellings in the file gtt.c

2021-02-22 Thread Bhaskar Chowdhury


s/negtive/negative/
s/possilbe/possible/

Signed-off-by: Bhaskar Chowdhury 
---
 drivers/gpu/drm/i915/gvt/gtt.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/gpu/drm/i915/gvt/gtt.c b/drivers/gpu/drm/i915/gvt/gtt.c
index 897c007ea96a..dc5834bf4de2 100644
--- a/drivers/gpu/drm/i915/gvt/gtt.c
+++ b/drivers/gpu/drm/i915/gvt/gtt.c
@@ -1159,8 +1159,8 @@ static inline void ppgtt_generate_shadow_entry(struct 
intel_gvt_gtt_entry *se,
  * @vgpu: target vgpu
  * @entry: target pfn's gtt entry
  *
- * Return 1 if 2MB huge gtt shadowing is possilbe, 0 if miscondition,
- * negtive if found err.
+ * Return 1 if 2MB huge gtt shadowing is possible, 0 if miscondition,
+ * negative if found err.
  */
 static int is_2MB_gtt_possible(struct intel_vgpu *vgpu,
struct intel_gvt_gtt_entry *entry)
--
2.26.2



Re: /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:102:21: warning: invalid suffix on literal; C++11 requires a space between literal and string macro

2021-02-14 Thread Valdis Klētnieks
On Sun, 14 Feb 2021 04:00:31 +0800, kernel test robot said:

> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   dcc0b49040c70ad827a7f3d58a21b01fdb14e749
> commit: 67a5a68013056cbcf0a647e36cb6f4622fb6a470 gcc-plugins: fix gcc 11 
> indigestion with plugins...
> date:   5 weeks ago
> config: x86_64-randconfig-a001-20200622 (attached as .config)
> compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
> reproduce (this is a W=1 build):
> # 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=67a5a68013056cbcf0a647e36cb6f4622fb6a470
> git remote add linus 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 67a5a68013056cbcf0a647e36cb6f4622fb6a470
> # save the attached .config to linux build tree
> make W=1 ARCH=x86_64
>
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot 
>
> All warnings (new ones prefixed by >>):
>
>In file included from 
> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/tm.h:27,
> from 
> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/gcc-pugin.h:31,
> from 
> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/plugin.h:23,
> from scripts/gcc-plugins/gcc-common.h:9,
>     from scripts/gcc-plugins/latent_entropy_plugin.c:78:
> >> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:102:21: 
> >> warning: invalid suffix on literal; C++11 requires a space between literal 
> >> and string macro [-Wliteral-suffix]
>fprintf ((FILE), "%s"HOST_WIDE_INT_PRINT_UNSIGNED"\n",\
> ^

Kees: I already sent a patch for this on Jan 13, but apparently it didn't
get pushed out..




pgpq5WHgo8LCc.pgp
Description: PGP signature


/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:102:21: warning: invalid suffix on literal; C++11 requires a space between literal and string macro

2021-02-13 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   dcc0b49040c70ad827a7f3d58a21b01fdb14e749
commit: 67a5a68013056cbcf0a647e36cb6f4622fb6a470 gcc-plugins: fix gcc 11 
indigestion with plugins...
date:   5 weeks ago
config: x86_64-randconfig-a001-20200622 (attached as .config)
compiler: gcc-5 (Ubuntu 5.5.0-12ubuntu1) 5.5.0 20171010
reproduce (this is a W=1 build):
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=67a5a68013056cbcf0a647e36cb6f4622fb6a470
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 67a5a68013056cbcf0a647e36cb6f4622fb6a470
# save the attached .config to linux build tree
make W=1 ARCH=x86_64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   In file included from /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/tm.h:27,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/gcc-plugin.h:31,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/plugin.h:23,
from scripts/gcc-plugins/gcc-common.h:9,
from scripts/gcc-plugins/latent_entropy_plugin.c:78:
>> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:102:21: 
>> warning: invalid suffix on literal; C++11 requires a space between literal 
>> and string macro [-Wliteral-suffix]
   fprintf ((FILE), "%s"HOST_WIDE_INT_PRINT_UNSIGNED"\n",\
        ^
   /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:170:24: 
warning: invalid suffix on literal; C++11 requires a space between literal and 
string macro [-Wliteral-suffix]
  fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n",  \
   ^
   In file included from /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/tm.h:48,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/gcc-plugin.h:31,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/plugin.h:23,
from scripts/gcc-plugins/gcc-common.h:9,
from scripts/gcc-plugins/latent_entropy_plugin.c:78:
>> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/defaults.h:126:24: warning: 
>> invalid suffix on literal; C++11 requires a space between literal and string 
>> macro [-Wliteral-suffix]
  fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n",  \
   ^
>> cc1plus: warning: unrecognized command line option '-Wno-format-diag'
--
   In file included from /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/tm.h:27,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/gcc-plugin.h:31,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/plugin.h:23,
from scripts/gcc-plugins/gcc-common.h:9,
from scripts/gcc-plugins/latent_entropy_plugin.c:78:
>> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:102:21: 
>> warning: invalid suffix on literal; C++11 requires a space between literal 
>> and string macro [-Wliteral-suffix]
   fprintf ((FILE), "%s"HOST_WIDE_INT_PRINT_UNSIGNED"\n",\
^
   /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:170:24: 
warning: invalid suffix on literal; C++11 requires a space between literal and 
string macro [-Wliteral-suffix]
  fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n",  \
   ^
   In file included from /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/tm.h:48,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/gcc-plugin.h:31,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/plugin.h:23,
from scripts/gcc-plugins/gcc-common.h:9,
from scripts/gcc-plugins/latent_entropy_plugin.c:78:
>> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/defaults.h:126:24: warning: 
>> invalid suffix on literal; C++11 requires a space between literal and string 
>> macro [-Wliteral-suffix]
  fprintf ((FILE), ","HOST_WIDE_INT_PRINT_UNSIGNED",%u\n",  \
   ^
   In file included from /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/tm.h:27,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/gcc-plugin.h:31,
from 
/usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/plugin.h:23,
from scripts/gcc-plugins/gcc-common.h:9,
from scripts/gcc-plugins/sancov_plugin.c:22:
>> /usr/lib/gcc/x86_64-linux-gnu/5/plugin/include/config/elfos.h:102:21: 
>> warnin

aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `drivers/clk/clk-fsl-flexspi.o' being placed in section `.eh_frame'

2021-01-30 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   6642d600b541b81931fb1ab0c041b0d68f77be7e
commit: fcf77be87eacb8f305528d24d892dfcf15cf0341 clk: fsl-flexspi: new driver
date:   8 weeks ago
config: arm64-randconfig-r013-20210130 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
275c6af7d7f1ed63a03d05b4484413e447133269)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=fcf77be87eacb8f305528d24d892dfcf15cf0341
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout fcf77be87eacb8f305528d24d892dfcf15cf0341
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpiolib-devres.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpiolib-legacy.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpiolib-of.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpiolib-cdev.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-mmio.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-74xx-mmio.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-adnp.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-adp5588.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-altera.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-amd-fch.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-xgs-iproc.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-bd70528.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-bd71828.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-bd9571mwv.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-cadence.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-dln2.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-dwapb.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-eic-sprd.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-ftgpio010.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-grgpio.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-gw-pld.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-kempld.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-logicvc.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-lp3943.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/gpio/gpio-lp873x.o' being placed in section `.eh_frame'

Re: [kbuild-all] aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `kernel/trace/trace_recursion_record.o' being placed in section `.eh_frame'

2021-01-30 Thread Philip Li
On Sun, Jan 31, 2021 at 10:09:22AM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   8c947645151cc2c279c75c7f640dd8f0fc0b9aa2
> commit: 773c16705058e9be7b0f4ce124e89cd231c120a2 ftrace: Add recording of 
> functions that caused recursion
> date:   3 months ago
> config: arm64-randconfig-r013-20210130 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
> 275c6af7d7f1ed63a03d05b4484413e447133269)
> reproduce (this is a W=1 build):
> wget 
> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
> ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install arm64 cross compiling tool for clang build
>     # apt-get install binutils-aarch64-linux-gnu
> # 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=773c16705058e9be7b0f4ce124e89cd231c120a2
> git remote add linus 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 773c16705058e9be7b0f4ce124e89cd231c120a2
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot 
Sorry, kindly ignore this false positive

> 
> All warnings (new ones prefixed by >>):
> 
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/irq/irq_sim.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/irq/proc.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/irq/cpuhotplug.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/irq/msi.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/irq/ipi.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/irq/affinity.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/irq/debugfs.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/rcu/update.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/rcu/sync.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/rcu/srcutree.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/rcu/rcuscale.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/rcu/refscale.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/rcu/tree.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/rcu/rcu_segcblist.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/dma/mapping.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/dma/direct.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/dma/ops_helpers.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/dma/dummy.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/dma/coherent.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/dma/swiotlb.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/dma/pool.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/dma/remap.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `kernel/fr

Re: [kbuild-all] aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `drivers/tty/serial/liteuart.o' being placed in section `.eh_frame'

2021-01-30 Thread Philip Li
On Sun, Jan 31, 2021 at 11:36:33AM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   6642d600b541b81931fb1ab0c041b0d68f77be7e
> commit: 1da81e5562fac8286567422cc56a7fbd0dc646d4 drivers/tty/serial: add 
> LiteUART driver
> date:   3 months ago
> config: arm64-randconfig-r013-20210130 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
> 275c6af7d7f1ed63a03d05b4484413e447133269)
> reproduce (this is a W=1 build):
> wget 
> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
> ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install arm64 cross compiling tool for clang build
>     # apt-get install binutils-aarch64-linux-gnu
> # 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1da81e5562fac8286567422cc56a7fbd0dc646d4
> git remote add linus 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout 1da81e5562fac8286567422cc56a7fbd0dc646d4
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot 
Sorry, kindly ignore this false positive.

> 
> All warnings (new ones prefixed by >>):
> 
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/max77650-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/max8649.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/max8660.o' being placed in section `.eh_frame'
>    aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/max8925-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/max8952.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/max77802-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/max77826-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/mcp16502.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/mp8859.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/mpq7920.o' being placed in section `.eh_frame'
>    aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/mt6311-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/mt6360-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/mt6397-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/qcom-labibb-regulator.o' being placed in section 
> `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/qcom_spmi-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/palmas-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/pca9450-regulator.o' being placed in section `.eh_frame'
>    aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/pfuze100-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/pv88060-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/pv88090-regulator.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/regulator/tps51

aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `drivers/tty/serial/liteuart.o' being placed in section `.eh_frame'

2021-01-30 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   6642d600b541b81931fb1ab0c041b0d68f77be7e
commit: 1da81e5562fac8286567422cc56a7fbd0dc646d4 drivers/tty/serial: add 
LiteUART driver
date:   3 months ago
config: arm64-randconfig-r013-20210130 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
275c6af7d7f1ed63a03d05b4484413e447133269)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=1da81e5562fac8286567422cc56a7fbd0dc646d4
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 1da81e5562fac8286567422cc56a7fbd0dc646d4
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/max77650-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/max8649.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/max8660.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/max8925-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/max8952.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/max77802-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/max77826-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/mcp16502.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/mp8859.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/mpq7920.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/mt6311-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/mt6360-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/mt6397-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/qcom-labibb-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/qcom_spmi-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/palmas-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/pca9450-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/pfuze100-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/pv88060-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/pv88090-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/tps51632-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/pcf50633-regulator.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/rpi-panel-attiny-regulator.o' being placed in section 
`.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/regulator/r

aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `kernel/trace/trace_recursion_record.o' being placed in section `.eh_frame'

2021-01-30 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   8c947645151cc2c279c75c7f640dd8f0fc0b9aa2
commit: 773c16705058e9be7b0f4ce124e89cd231c120a2 ftrace: Add recording of 
functions that caused recursion
date:   3 months ago
config: arm64-randconfig-r013-20210130 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
275c6af7d7f1ed63a03d05b4484413e447133269)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=773c16705058e9be7b0f4ce124e89cd231c120a2
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 773c16705058e9be7b0f4ce124e89cd231c120a2
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/irq/irq_sim.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/irq/proc.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/irq/cpuhotplug.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/irq/msi.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/irq/ipi.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/irq/affinity.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/irq/debugfs.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/rcu/update.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/rcu/sync.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/rcu/srcutree.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/rcu/rcuscale.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/rcu/refscale.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/rcu/tree.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/rcu/rcu_segcblist.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/dma/mapping.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/dma/direct.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/dma/ops_helpers.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/dma/dummy.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/dma/coherent.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/dma/swiotlb.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/dma/pool.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/dma/remap.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/freezer.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/profile.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/stacktrace.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/time/time.o' being placed in section `.eh_frame'
   aarch64-linux-gn

aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `drivers/firmware/arm_scmi/voltage.o' being placed in section `.eh_frame'

2021-01-30 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   8c947645151cc2c279c75c7f640dd8f0fc0b9aa2
commit: 2add5cacff3531e54c50b0832128299faa9f0563 firmware: arm_scmi: Add 
voltage domain management protocol support
date:   2 months ago
config: arm64-randconfig-r013-20210130 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
275c6af7d7f1ed63a03d05b4484413e447133269)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=2add5cacff3531e54c50b0832128299faa9f0563
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 2add5cacff3531e54c50b0832128299faa9f0563
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/speakup_dectlk.o' being placed in section 
`.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/speakup_decext.o' being placed in section 
`.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/speakup_soft.o' being placed in section 
`.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/buffers.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/devsynth.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/i18n.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/fakekey.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/main.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/keyhelp.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/kobjects.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/selection.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/spk_ttyio.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/synth.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/thread.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/accessibility/speakup/varhandlers.o' being placed in section 
`.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/mmc/core/core.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/mmc/core/bus.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/mmc/core/host.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/mmc/core/mmc.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/mmc/core/mmc_ops.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/mmc/core/sd.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/mmc/core/sd_ops.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/mmc/core/sdio.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers

aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `sound/usb/implicit.o' being placed in section `.eh_frame'

2021-01-30 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   8c947645151cc2c279c75c7f640dd8f0fc0b9aa2
commit: 9fddc15e803945a744f357a4d1c94301e1ed6681 ALSA: usb-audio: Factor out 
the implicit feedback quirk code
date:   10 weeks ago
config: arm64-randconfig-r013-20210130 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
275c6af7d7f1ed63a03d05b4484413e447133269)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=9fddc15e803945a744f357a4d1c94301e1ed6681
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 9fddc15e803945a744f357a4d1c94301e1ed6681
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/hwtracing/intel_th/msu-sink.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/hwtracing/stm/core.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/hwtracing/stm/policy.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/hwtracing/stm/p_sys-t.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/hwtracing/stm/dummy_stm.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/hwtracing/stm/heartbeat.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/hwtracing/stm/ftrace.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/core.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/bcm-ocotp.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/imx-iim.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/imx-ocotp.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/qcom-spmi-sdam.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/rockchip-efuse.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/rockchip-otp.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/uniphier-efuse.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/snvs_lpgpr.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/rave-sp-eeprom.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/zynqmp_nvmem.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/nvmem/sprd-efuse.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/fpga/fpga-mgr.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/fpga/stratix10-soc.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/fpga/fpga-bridge.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/fpga/xilinx-pr-decoupler.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/fpga/fpga-region.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`d

Re: aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `drivers/media/platform/rockchip/rkisp1/rkisp1-capture.o' being placed in section `.eh_frame'

2021-01-30 Thread Nathan Chancellor
On Sun, Jan 31, 2021 at 03:52:15AM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   0e9bcda5d286f4a26a5407bb38f55c55b453ecfb
> commit: e6938cc1cb7763a363f62b78147f1f2fb972f49c media: rockchip: rkisp1: 
> destage Rockchip ISP1 driver
> date:   3 months ago
> config: arm64-randconfig-r013-20210130 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
> 275c6af7d7f1ed63a03d05b4484413e447133269)
> reproduce (this is a W=1 build):
> wget 
> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
> ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install arm64 cross compiling tool for clang build
>     # apt-get install binutils-aarch64-linux-gnu
> # 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e6938cc1cb7763a363f62b78147f1f2fb972f49c
> git remote add linus 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout e6938cc1cb7763a363f62b78147f1f2fb972f49c
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot 
> 
> All warnings (new ones prefixed by >>):
> 
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/input/input.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/input/input-compat.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/input/input-mt.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `drivers/input/input-poller.o' being placed in section `.eh_frame'

https://lore.kernel.org/lkml/20210130004650.2682422-1-nat...@kernel.org/

Cheers,
Nathan


aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `drivers/media/platform/rockchip/rkisp1/rkisp1-capture.o' being placed in section `.eh_frame'

2021-01-30 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   0e9bcda5d286f4a26a5407bb38f55c55b453ecfb
commit: e6938cc1cb7763a363f62b78147f1f2fb972f49c media: rockchip: rkisp1: 
destage Rockchip ISP1 driver
date:   3 months ago
config: arm64-randconfig-r013-20210130 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
275c6af7d7f1ed63a03d05b4484413e447133269)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=e6938cc1cb7763a363f62b78147f1f2fb972f49c
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout e6938cc1cb7763a363f62b78147f1f2fb972f49c
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/input.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/input-compat.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/input-mt.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/input-poller.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/ff-core.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/ff-memless.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/sparse-keymap.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/matrix-keymap.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/input-leds.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/mousedev.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/joydev.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/evbug.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_bus.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_driver.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_f01.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_2d_sensor.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_f03.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_f11.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_f12.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_f34.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_f34v7.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_f3a.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/input/rmi4/rmi_smbus.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/i2c/i2c-boardinfo.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`drivers/i2c/i2c-core-base.o' being place

aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `arch/arm64/kernel/ftrace.o' being placed in section `.eh_frame'

2021-01-30 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   bec4c2968fce2f44ce62d05288a633cd99a722eb
commit: b3e5d80d0c48c0cc7bce56473672f4e6e1210910 arm64/build: Warn on orphan 
section placement
date:   5 months ago
config: arm64-randconfig-r013-20210130 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
275c6af7d7f1ed63a03d05b4484413e447133269)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b3e5d80d0c48c0cc7bce56473672f4e6e1210910
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b3e5d80d0c48c0cc7bce56473672f4e6e1210910
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: -z norelro ignored
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `init/main.o' 
being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/version.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/do_mounts.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/do_mounts_rd.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/do_mounts_initrd.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/initramfs.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/calibrate.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/init_task.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/debug-monitors.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/irq.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/fpsimd.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/entry-common.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/process.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/ptrace.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/setup.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/signal.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/sys.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/stacktrace.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/time.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/traps.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/io.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/vdso.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/psci.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/cpu_ops.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/insn.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: w

Re: aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `arch/arm64/kernel/ftrace.o' being placed in section `.eh_frame'

2021-01-29 Thread Nathan Chancellor
On Sat, Jan 30, 2021 at 09:21:49AM +0800, kernel test robot wrote:
> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   bec4c2968fce2f44ce62d05288a633cd99a722eb
> commit: b3e5d80d0c48c0cc7bce56473672f4e6e1210910 arm64/build: Warn on orphan 
> section placement
> date:   5 months ago
> config: arm64-randconfig-r013-20210130 (attached as .config)
> compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
> 275c6af7d7f1ed63a03d05b4484413e447133269)
> reproduce (this is a W=1 build):
> wget 
> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
> ~/bin/make.cross
> chmod +x ~/bin/make.cross
> # install arm64 cross compiling tool for clang build
>     # apt-get install binutils-aarch64-linux-gnu
> # 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b3e5d80d0c48c0cc7bce56473672f4e6e1210910
> git remote add linus 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
> git fetch --no-tags linus master
> git checkout b3e5d80d0c48c0cc7bce56473672f4e6e1210910
> # save the attached .config to linux build tree
> COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 
> 
> If you fix the issue, kindly add following tag as appropriate
> Reported-by: kernel test robot 
> 
> All warnings (new ones prefixed by >>):
> 
>aarch64-linux-gnu-ld: warning: -z norelro ignored
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `init/main.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `init/version.o' being placed in section `.eh_frame'
>    aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `init/do_mounts.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `init/do_mounts_rd.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `init/do_mounts_initrd.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `init/initramfs.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `init/calibrate.o' being placed in section `.eh_frame'
>aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
> `init/init_task.o' being placed in section `.eh_frame'

https://lore.kernel.org/lkml/20210130004650.2682422-1-nat...@kernel.org/

Cheers,
Nathan


aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `arch/arm64/kernel/sdei.o' being placed in section `.eh_frame'

2021-01-28 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   76c057c84d286140c6c416c3b4ba832cd1d8984e
commit: b3e5d80d0c48c0cc7bce56473672f4e6e1210910 arm64/build: Warn on orphan 
section placement
date:   5 months ago
config: arm64-randconfig-r034-20210128 (attached as .config)
compiler: clang version 13.0.0 (https://github.com/llvm/llvm-project 
48bdd676a1d1338c10541460bf5beb69ac17e451)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b3e5d80d0c48c0cc7bce56473672f4e6e1210910
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b3e5d80d0c48c0cc7bce56473672f4e6e1210910
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: orphan section `.igot.plt' from 
`arch/arm64/kernel/head.o' being placed in section `.igot.plt'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `init/main.o' 
being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/version.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/do_mounts.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/do_mounts_initrd.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/initramfs.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/calibrate.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`init/init_task.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/debug-monitors.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/irq.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/fpsimd.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/entry-common.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/process.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/ptrace.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/setup.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/signal.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/sys.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/stacktrace.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/time.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/traps.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/io.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/vdso.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/psci.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/cpu_ops.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arch/arm64/kernel/insn.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`arc

aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from `kernel/trace/ring_buffer.o' being placed in section `.eh_frame'

2021-01-18 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   19c329f6808995b142b3966301f217c831e7cf31
commit: b3e5d80d0c48c0cc7bce56473672f4e6e1210910 arm64/build: Warn on orphan 
section placement
date:   5 months ago
config: arm64-randconfig-r006-20210118 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 
95d146182fdf2315e74943b93fb3bb0cbafc5d89)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b3e5d80d0c48c0cc7bce56473672f4e6e1210910
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout b3e5d80d0c48c0cc7bce56473672f4e6e1210910
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All warnings (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: orphan section `.igot.plt' from 
`arch/arm64/kernel/head.o' being placed in section `.igot.plt'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/trace/trace_clock.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/ring_buffer.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/ring_buffer_benchmark.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_output.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_seq.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_stat.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_printk.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/tracing_map.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_sched_switch.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_preemptirq.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_irqsoff.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_hwlat.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_nop.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_events.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_export.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_event_perf.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_events_filter.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_events_trigger.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_events_synth.o' being placed in section `.eh_frame'
>> aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
>> `kernel/trace/trace_events_hist.o' being placed in section `.eh_frame'
   aarch64-linux-gnu-ld: warning: orphan section `.eh_frame' from 
`kernel/trace/bpf_trace

[PATCH] gcc-plugins: avoid errors with -std=gnu++11 on old gcc

2021-01-13 Thread Valdis Klētnieks
It turns out that older gcc (4.9 and 5.4) have gnu++11 support, but
due to a gcc bug fixed in gcc6, throw errors during the build.
The relevant gcc bug is https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69959

Version the option based on what gcc we're using.

Signed-off-by: Valdis Kletnieks 
Fixes: 27c287b41659 ("gcc-plugins: fix gcc 11 indigestion with plugins...")
---
diff --git a/scripts/gcc-plugins/Makefile b/scripts/gcc-plugins/Makefile
index b5487cce69e8..cc779973724a 100644
--- a/scripts/gcc-plugins/Makefile
+++ b/scripts/gcc-plugins/Makefile
@@ -21,8 +21,11 @@ always-y += $(GCC_PLUGIN)
 
 GCC_PLUGINS_DIR = $(shell $(CC) -print-file-name=plugin)
 
+# need gnu++11 for gcc 11, but 4.9 and 5.4 need gnu++98
+GCC_FLAVOR = $(call cc-ifversion, -ge, 1100, 11, 98)
+
 plugin_cxxflags= -Wp,-MMD,$(depfile) $(KBUILD_HOSTCXXFLAGS) -fPIC \
-  -I $(GCC_PLUGINS_DIR)/include -I $(obj) -std=gnu++11 \
+  -I $(GCC_PLUGINS_DIR)/include -I $(obj) 
-std=gnu++$(GCC_FLAVOR) \
   -fno-rtti -fno-exceptions -fasynchronous-unwind-tables \
   -ggdb -Wno-narrowing -Wno-unused-variable \
   -Wno-format-diag



aarch64-linux-gnu-ld: drivers/clk/meson/g12a.o:undefined reference to `meson_vid_pll_div_ro_ops'

2020-12-21 Thread kernel test robot
tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   e37b12e4bb21e7c81732370b0a2b34bd196f380b
commit: ba66a25536dd24b73d36e380c68593e95e4e06a8 arm64: meson: ship only the 
necessary clock controllers
date:   6 weeks ago
config: arm64-randconfig-r033-20201220 (attached as .config)
compiler: clang version 12.0.0 (https://github.com/llvm/llvm-project 
cee1e7d14f4628d6174b33640d502bff3b54ae45)
reproduce (this is a W=1 build):
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm64 cross compiling tool for clang build
# apt-get install binutils-aarch64-linux-gnu
# 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=ba66a25536dd24b73d36e380c68593e95e4e06a8
git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout ba66a25536dd24b73d36e380c68593e95e4e06a8
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm64 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot 

All errors (new ones prefixed by >>):

   aarch64-linux-gnu-ld: warning: -z norelro ignored
>> aarch64-linux-gnu-ld: drivers/clk/meson/g12a.o:(.data+0x4ec8): undefined 
>> reference to `meson_vid_pll_div_ro_ops'

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org


.config.gz
Description: application/gzip


Re: Plumbers session on GNU+LLVM collab?

2020-07-10 Thread Fangrui Song

On 2020-07-09, 'Nick Desaulniers' via Clang Built Linux wrote:

Hi Segher, Rasmus, and Ramana,
I am working on finalizing a proposal for an LLVM microconference at
plumbers, which is focusing on a lot of issues we currently face on
the LLVM side.

I'd really like to host a session with more GNU toolchain developers
to discuss collaboration more.

I was curious; are either of you planning on attending plumbers this year?

If so, would such a session be interesting enough for you to attend?


Looks like a good idea. I am interested.

Perhaps Tom Stellard, Jeremy Bennett, Nathan Sidwell and Iain Sandoe have some 
ideas.
They have a talk about GCC/LLVM collaboration
https://gcc.gnu.org/wiki/cauldron2019#cauldron2019talks.GCC_LLVM_Collaboration_BoF


I was curious too, who else we should explicitly invite?  I ran a
quick set analysis on who's contributed to both kernel and
, and the list was much much bigger than I was expecting.
https://gist.github.com/nickdesaulniers/5330eea6f46dea93e7766bb03311d474
89 contributors to both linux and llvm
283 linux+gcc
159 linux+binutils
(No one to all four yet...also, not super scientific, since I'm using
name+email for the set, and emails change. Point being I don't want to
explicitly invite hundreds of people)


Might be worth sending an email to g...@gcc.gnu.org as well.

This month's archive: https://sourceware.org/pipermail/gcc/2020-July/


Re: [PATCH v2 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-10 Thread Arnaldo Carvalho de Melo
Em Fri, Jul 10, 2020 at 07:27:12PM +0530, Srikar Dronamraju escreveu:
> * Masami Hiramatsu  [2020-07-10 22:11:33]:
> 
> > Warn if the probe target function is GNU indirect function (GNU_IFUNC)
> > because it may not what the user want to probe.
> > 
> > The GNU indirect function ( https://sourceware.org/glibc/wiki/GNU_IFUNC )
> > is the dynamic solved symbol at runtime. IFUNC function is a selector
> > which is invoked from the elf loader, but the symbol address of the
> > function which will be modified by the IFUNC is same as the IFUNC in
> > the symbol table. This can confuse users who is trying to probe on
> > such functions.
> > 
> > For example, the memcpy is one of IFUNC.
> > 
> > # perf probe -x /lib64/libc-2.30.so -a memcpy
> > # perf probe -l
> >   probe_libc:memcpy(on __new_memcpy_ifunc@x86_64/multiarch/memcpy.c in 
> > /usr/lib64/libc-2.30.so)
> > 
> > the probe is put on a IFUNC.
> > 
> > # perf record -e probe_libc:memcpy --call-graph dwarf -aR ./perf
> > 
> > Thus, I decided to warn user when the perf probe detects the probe point
> > is on the GNU IFUNC symbol. Someone who wants to probe an IFUNC symbol to
> > debug the IFUNC function, they can ignore this warning.
> > 
> > Reported-by: Andi Kleen 
> > Signed-off-by: Masami Hiramatsu 
> 
> Looks good to me.
> 
> Reviewed-by: Srikar Dronamraju 

Thanks, applied.

- Arnaldo


Re: [PATCH v2 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-10 Thread Srikar Dronamraju
* Masami Hiramatsu  [2020-07-10 22:11:33]:

> Warn if the probe target function is GNU indirect function (GNU_IFUNC)
> because it may not what the user want to probe.
> 
> The GNU indirect function ( https://sourceware.org/glibc/wiki/GNU_IFUNC )
> is the dynamic solved symbol at runtime. IFUNC function is a selector
> which is invoked from the elf loader, but the symbol address of the
> function which will be modified by the IFUNC is same as the IFUNC in
> the symbol table. This can confuse users who is trying to probe on
> such functions.
> 
> For example, the memcpy is one of IFUNC.
> 
> # perf probe -x /lib64/libc-2.30.so -a memcpy
> # perf probe -l
>   probe_libc:memcpy(on __new_memcpy_ifunc@x86_64/multiarch/memcpy.c in 
> /usr/lib64/libc-2.30.so)
> 
> the probe is put on a IFUNC.
> 
> # perf record -e probe_libc:memcpy --call-graph dwarf -aR ./perf
> 
> Thus, I decided to warn user when the perf probe detects the probe point
> is on the GNU IFUNC symbol. Someone who wants to probe an IFUNC symbol to
> debug the IFUNC function, they can ignore this warning.
> 
> Reported-by: Andi Kleen 
> Signed-off-by: Masami Hiramatsu 

Looks good to me.

Reviewed-by: Srikar Dronamraju 

> ---
>   Changes in v2:
>- Check GNU_IFUNC only for uprobe
>- Show function name instead of the address.
>- Update the warning message according to Andi's comment.
> ---
>  tools/perf/util/probe-event.c |8 ++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 8cd1224e5f4c..679447f13c20 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -375,9 +375,13 @@ static int find_alternative_probe_point(struct debuginfo 
> *dinfo,
> 
>   /* Find the address of given function */
>   map__for_each_symbol_by_name(map, pp->function, sym) {
> - if (uprobes)
> + if (uprobes) {
>   address = sym->start;
> -     else
> + if (sym->type == STT_GNU_IFUNC)
> + pr_warning("Warning: The probe function (%s) is 
> a GNU indirect function.\n"
> +"Consider identifying the final 
> function used at run time and set the probe directly on that.\n",
> +pp->function);
> + } else
>   address = map->unmap_ip(map, sym->start) - map->reloc;
>   break;
>   }
> 

-- 
Thanks and Regards
Srikar Dronamraju


[PATCH v2 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-10 Thread Masami Hiramatsu
Warn if the probe target function is GNU indirect function (GNU_IFUNC)
because it may not what the user want to probe.

The GNU indirect function ( https://sourceware.org/glibc/wiki/GNU_IFUNC )
is the dynamic solved symbol at runtime. IFUNC function is a selector
which is invoked from the elf loader, but the symbol address of the
function which will be modified by the IFUNC is same as the IFUNC in
the symbol table. This can confuse users who is trying to probe on
such functions.

For example, the memcpy is one of IFUNC.

# perf probe -x /lib64/libc-2.30.so -a memcpy
# perf probe -l
  probe_libc:memcpy(on __new_memcpy_ifunc@x86_64/multiarch/memcpy.c in 
/usr/lib64/libc-2.30.so)

the probe is put on a IFUNC.

# perf record -e probe_libc:memcpy --call-graph dwarf -aR ./perf
# perf script
perf  1742 [000] 26201.715632: probe_libc:memcpy: (7fdaa53824c0)
7fdaa53824c0 __new_memcpy_ifunc+0x0 (inlined)
7fdaa5d4a980 elf_machine_rela+0x6c0 (inlined)
7fdaa5d4a980 elf_dynamic_do_Rela+0x6c0 (inlined)
7fdaa5d4a980 _dl_relocate_object+0x6c0 (/usr/lib64/ld-2.30.so)
7fdaa5d42155 dl_main+0x1cc5 (/usr/lib64/ld-2.30.so)
7fdaa5d5831a _dl_sysdep_start+0x54a (/usr/lib64/ld-2.30.so)
7fdaa5d3ffeb _dl_start_final+0x25b (inlined)
7fdaa5d3ffeb _dl_start+0x25b (/usr/lib64/ld-2.30.so)
7fdaa5d3f117 .annobin_rtld.c+0x7 (inlined)
...

And the event is invoked from the elf loader instead of the target
program's main code.


Moreover, at this moment, we can not probe on the function which will
be selected by the IFUNC, because it is determined at runtime. But
uprobe will be prepared before running the target binary.

Thus, I decided to warn user when the perf probe detects the probe point
is on the GNU IFUNC symbol. Someone who wants to probe an IFUNC symbol to
debug the IFUNC function, they can ignore this warning.

Reported-by: Andi Kleen 
Signed-off-by: Masami Hiramatsu 
---
  Changes in v2:
   - Check GNU_IFUNC only for uprobe
   - Show function name instead of the address.
   - Update the warning message according to Andi's comment.
---
 tools/perf/util/probe-event.c |8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 8cd1224e5f4c..679447f13c20 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -375,9 +375,13 @@ static int find_alternative_probe_point(struct debuginfo 
*dinfo,
 
/* Find the address of given function */
map__for_each_symbol_by_name(map, pp->function, sym) {
-   if (uprobes)
+   if (uprobes) {
address = sym->start;
-   else
+   if (sym->type == STT_GNU_IFUNC)
+   pr_warning("Warning: The probe function (%s) is 
a GNU indirect function.\n"
+  "Consider identifying the final 
function used at run time and set the probe directly on that.\n",
+  pp->function);
+   } else
address = map->unmap_ip(map, sym->start) - map->reloc;
break;
}



[PATCH v2 0/4] perf-probe: Fix GNU IFUNC probe issue etc.

2020-07-10 Thread Masami Hiramatsu
Hi,

Here are the v2 patches to fix some issues of probing on GNU IFUNC,
duplicated symbols, and memory leak, which were reported by Andi.
V1 is here:

 https://lkml.kernel.org/r/159428201109.56570.3802208017109058146.stgit@devnote2

In this version, I've added Srikar's reviewed-by and Andi's Tested-by (Thanks
Srikar and Andi!) and fix some messages and code according to the comment.

Thank you,

---

Masami Hiramatsu (4):
  perf-probe: Avoid setting probes on same address on same event
  perf-probe: Fix wrong variable warning when the probe point is not found
  perf-probe: Fix memory leakage when the probe point is not found
  perf-probe: Warn if the target function is GNU Indirect function


 tools/perf/util/probe-event.c  |   18 --
 tools/perf/util/probe-finder.c |5 -
 2 files changed, 20 insertions(+), 3 deletions(-)

--
Masami Hiramatsu (Linaro) 


Re: [PATCH 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-10 Thread Masami Hiramatsu
On Fri, 10 Jul 2020 08:55:40 -0300
Arnaldo Carvalho de Melo  wrote:

> Em Fri, Jul 10, 2020 at 12:30:08PM +0900, Masami Hiramatsu escreveu:
> > On Thu, 9 Jul 2020 07:36:54 -0700
> > Andi Kleen  wrote:
> > 
> > > > diff --git a/tools/perf/util/probe-event.c 
> > > > b/tools/perf/util/probe-event.c
> > > > index 1e95a336862c..671176d39569 100644
> > > > --- a/tools/perf/util/probe-event.c
> > > > +++ b/tools/perf/util/probe-event.c
> > > > @@ -379,6 +379,11 @@ static int find_alternative_probe_point(struct 
> > > > debuginfo *dinfo,
> > > > address = sym->start;
> > > > else
> > > > address = map->unmap_ip(map, sym->start) - 
> > > > map->reloc;
> > > > +   if (sym->type == STT_GNU_IFUNC) {
> > > > +   pr_warning("Warning: The probe address (0x%lx) 
> > > > is in a GNU indirect function.\n"
> > > > +   "This may not work as you expected 
> > > > unless you intend to probe the indirect function.\n",
> > > 
> > > I would say something like this.
> > > 
> > > Consider identifying the final function used at run time and set the
> > > probe directly on that.
> > > 
> > > I think that's more useful to the user.
> > 
> > Hmm, would you mean the default function which may be used for the symbol?
> 
> Humm, I think he means that the user must somehow, knowing details
> involved in picking the final function, probe that one instead of the
> IFUNC one, right Andi?

Ah, I got it. OK, I'll update the message :)

Thank you,


-- 
Masami Hiramatsu 


Re: [PATCH 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-10 Thread Masami Hiramatsu
On Fri, 10 Jul 2020 16:45:12 +0530
Srikar Dronamraju  wrote:

> * Masami Hiramatsu  [2020-07-09 17:07:31]:
> 
> > Reported-by: Andi Kleen 
> > Signed-off-by: Masami Hiramatsu 
> > ---
> >  tools/perf/util/probe-event.c |5 +
> >  1 file changed, 5 insertions(+)
> > 
> > diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> > index 1e95a336862c..671176d39569 100644
> > --- a/tools/perf/util/probe-event.c
> > +++ b/tools/perf/util/probe-event.c
> > @@ -379,6 +379,11 @@ static int find_alternative_probe_point(struct 
> > debuginfo *dinfo,
> > address = sym->start;
> > else
> > address = map->unmap_ip(map, sym->start) - map->reloc;
> > +   if (sym->type == STT_GNU_IFUNC) {
> > +   pr_warning("Warning: The probe address (0x%lx) is in a 
> > GNU indirect function.\n"
> > +   "This may not work as you expected unless you 
> > intend to probe the indirect function.\n",
> > +   (unsigned long)address);
> > +   }
> 
> Are these GNU indirect functions possible in kernel? If not we could move
> this warning under if (uprobes)

OK, I'll move it under if (uprobes).

> 
> Also instead of printing the address, can we print the pp->function?

Hmm, OK. But it may not help user because the pp->function will the name
specified by user...

Thank you,


-- 
Masami Hiramatsu 


Re: [PATCH 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-10 Thread Arnaldo Carvalho de Melo
Em Fri, Jul 10, 2020 at 12:30:08PM +0900, Masami Hiramatsu escreveu:
> On Thu, 9 Jul 2020 07:36:54 -0700
> Andi Kleen  wrote:
> 
> > > diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> > > index 1e95a336862c..671176d39569 100644
> > > --- a/tools/perf/util/probe-event.c
> > > +++ b/tools/perf/util/probe-event.c
> > > @@ -379,6 +379,11 @@ static int find_alternative_probe_point(struct 
> > > debuginfo *dinfo,
> > >   address = sym->start;
> > >   else
> > >   address = map->unmap_ip(map, sym->start) - map->reloc;
> > > + if (sym->type == STT_GNU_IFUNC) {
> > > + pr_warning("Warning: The probe address (0x%lx) is in a 
> > > GNU indirect function.\n"
> > > + "This may not work as you expected unless you 
> > > intend to probe the indirect function.\n",
> > 
> > I would say something like this.
> > 
> > Consider identifying the final function used at run time and set the
> > probe directly on that.
> > 
> > I think that's more useful to the user.
> 
> Hmm, would you mean the default function which may be used for the symbol?

Humm, I think he means that the user must somehow, knowing details
involved in picking the final function, probe that one instead of the
IFUNC one, right Andi?

- Arnaldo

> Let me check how we can find it.


Re: [PATCH 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-10 Thread Srikar Dronamraju
* Masami Hiramatsu  [2020-07-09 17:07:31]:

> Reported-by: Andi Kleen 
> Signed-off-by: Masami Hiramatsu 
> ---
>  tools/perf/util/probe-event.c |5 +
>  1 file changed, 5 insertions(+)
> 
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 1e95a336862c..671176d39569 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -379,6 +379,11 @@ static int find_alternative_probe_point(struct debuginfo 
> *dinfo,
>   address = sym->start;
>   else
>   address = map->unmap_ip(map, sym->start) - map->reloc;
> + if (sym->type == STT_GNU_IFUNC) {
> +     pr_warning("Warning: The probe address (0x%lx) is in a 
> GNU indirect function.\n"
> + "This may not work as you expected unless you 
> intend to probe the indirect function.\n",
> + (unsigned long)address);
> + }

Are these GNU indirect functions possible in kernel? If not we could move
this warning under if (uprobes)

Also instead of printing the address, can we print the pp->function?

>   break;
>   }
>   if (!address) {
> 

-- 
Thanks and Regards
Srikar Dronamraju


Re: [PATCH 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-09 Thread Masami Hiramatsu
On Thu, 9 Jul 2020 07:36:54 -0700
Andi Kleen  wrote:

> > diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> > index 1e95a336862c..671176d39569 100644
> > --- a/tools/perf/util/probe-event.c
> > +++ b/tools/perf/util/probe-event.c
> > @@ -379,6 +379,11 @@ static int find_alternative_probe_point(struct 
> > debuginfo *dinfo,
> > address = sym->start;
> > else
> > address = map->unmap_ip(map, sym->start) - map->reloc;
> > +   if (sym->type == STT_GNU_IFUNC) {
> > +   pr_warning("Warning: The probe address (0x%lx) is in a 
> > GNU indirect function.\n"
> > +   "This may not work as you expected unless you 
> > intend to probe the indirect function.\n",
> 
> I would say something like this.
> 
> Consider identifying the final function used at run time and set the
> probe directly on that.
> 
> I think that's more useful to the user.

Hmm, would you mean the default function which may be used for the symbol?
Let me check how we can find it.

Thank you,

-- 
Masami Hiramatsu 


Plumbers session on GNU+LLVM collab?

2020-07-09 Thread Nick Desaulniers
Hi Segher, Rasmus, and Ramana,
I am working on finalizing a proposal for an LLVM microconference at
plumbers, which is focusing on a lot of issues we currently face on
the LLVM side.

I'd really like to host a session with more GNU toolchain developers
to discuss collaboration more.

I was curious; are either of you planning on attending plumbers this year?

If so, would such a session be interesting enough for you to attend?

I was curious too, who else we should explicitly invite?  I ran a
quick set analysis on who's contributed to both kernel and
, and the list was much much bigger than I was expecting.
https://gist.github.com/nickdesaulniers/5330eea6f46dea93e7766bb03311d474
89 contributors to both linux and llvm
283 linux+gcc
159 linux+binutils
(No one to all four yet...also, not super scientific, since I'm using
name+email for the set, and emails change. Point being I don't want to
explicitly invite hundreds of people)

The details of the MC are still being worked out, and it might not
happen, but I think with more explicit interest it's likely.
-- 
Thanks,
~Nick Desaulniers


Re: [PATCH 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-09 Thread Andi Kleen
> diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
> index 1e95a336862c..671176d39569 100644
> --- a/tools/perf/util/probe-event.c
> +++ b/tools/perf/util/probe-event.c
> @@ -379,6 +379,11 @@ static int find_alternative_probe_point(struct debuginfo 
> *dinfo,
>   address = sym->start;
>   else
>   address = map->unmap_ip(map, sym->start) - map->reloc;
> + if (sym->type == STT_GNU_IFUNC) {
> + pr_warning("Warning: The probe address (0x%lx) is in a 
> GNU indirect function.\n"
> + "This may not work as you expected unless you 
> intend to probe the indirect function.\n",

I would say something like this.

Consider identifying the final function used at run time and set the
probe directly on that.

I think that's more useful to the user.

-Andi


[PATCH 4/4] perf-probe: Warn if the target function is GNU Indirect function

2020-07-09 Thread Masami Hiramatsu
Warn if the probe target function is GNU indirect function (GNU_IFUNC)
because it may not what the user want to probe.

The GNU indirect function ( https://sourceware.org/glibc/wiki/GNU_IFUNC )
is the dynamic solved symbol at runtime. IFUNC function is a selector
which is invoked from the elf loader, but the symbol address of the
function which will be modified by the IFUNC is same as the IFUNC in
the symbol table. This can confuse users who is trying to probe on
such functions.

For example, the memcpy is one of IFUNC.

# perf probe -x /lib64/libc-2.30.so -a memcpy
# perf probe -l
  probe_libc:memcpy(on __new_memcpy_ifunc@x86_64/multiarch/memcpy.c in 
/usr/lib64/libc-2.30.so)

the probe is put on a IFUNC.

# perf record -e probe_libc:memcpy --call-graph dwarf -aR ./perf
# perf script
perf  1742 [000] 26201.715632: probe_libc:memcpy: (7fdaa53824c0)
7fdaa53824c0 __new_memcpy_ifunc+0x0 (inlined)
7fdaa5d4a980 elf_machine_rela+0x6c0 (inlined)
7fdaa5d4a980 elf_dynamic_do_Rela+0x6c0 (inlined)
7fdaa5d4a980 _dl_relocate_object+0x6c0 (/usr/lib64/ld-2.30.so)
7fdaa5d42155 dl_main+0x1cc5 (/usr/lib64/ld-2.30.so)
7fdaa5d5831a _dl_sysdep_start+0x54a (/usr/lib64/ld-2.30.so)
7fdaa5d3ffeb _dl_start_final+0x25b (inlined)
7fdaa5d3ffeb _dl_start+0x25b (/usr/lib64/ld-2.30.so)
7fdaa5d3f117 .annobin_rtld.c+0x7 (inlined)
...

And the event is invoked from the elf loader instead of the target
program's main code.


Moreover, at this moment, we can not probe on the function which will
be selected by the IFUNC, because it is determined at runtime. But
uprobe will be prepared before running the target binary.

Thus, I decided to warn user when the perf probe detects the probe point
is on the GNU IFUNC symbol. Someone who wants to probe an IFUNC symbol to
debug the IFUNC function, they can ignore this warning.


Reported-by: Andi Kleen 
Signed-off-by: Masami Hiramatsu 
---
 tools/perf/util/probe-event.c |5 +
 1 file changed, 5 insertions(+)

diff --git a/tools/perf/util/probe-event.c b/tools/perf/util/probe-event.c
index 1e95a336862c..671176d39569 100644
--- a/tools/perf/util/probe-event.c
+++ b/tools/perf/util/probe-event.c
@@ -379,6 +379,11 @@ static int find_alternative_probe_point(struct debuginfo 
*dinfo,
address = sym->start;
else
address = map->unmap_ip(map, sym->start) - map->reloc;
+   if (sym->type == STT_GNU_IFUNC) {
+   pr_warning("Warning: The probe address (0x%lx) is in a 
GNU indirect function.\n"
+   "This may not work as you expected unless you 
intend to probe the indirect function.\n",
+   (unsigned long)address);
+   }
break;
}
if (!address) {



[PATCH 0/4] perf-probe: Fix GNU IFUNC probe issue etc.

2020-07-09 Thread Masami Hiramatsu
Hi,

Here are patches to fix some issues of probing on GNU IFUNC, duplicated
symbols, and memory leak, which were reported by Andi.

Andi reported that some issues on probing memcpy function in glibc,
which was related to GNU IFUNC (indirect function). As I described
in the patch [4/4], it is hard to support probing on the functions
which are selected by GNU indirect function because those are chosen
at runtime. I think we need a user-mode helper in uprobes to find which
one is chosen at runtime. (Oleg, Srikar, would you have any idea?)

While cleaning up the patches, I also found a memory leak problem
so fixed it ([3/4]).

Thank you,

---

Masami Hiramatsu (4):
  perf-probe: Avoid setting probes on same address on same event
  perf-probe: Fix wrong variable warning when the probe point is not found
  perf-probe: Fix memory leakage when the probe point is not found
  perf-probe: Warn if the target function is GNU Indirect function


 tools/perf/util/probe-event.c  |   14 ++
 tools/perf/util/probe-finder.c |5 -
 2 files changed, 18 insertions(+), 1 deletion(-)

--
Masami Hiramatsu (Linaro) 


Re: [PATCH v2] ext4: support xattr gnu.* namespace for the Hurd

2020-06-12 Thread Theodore Y. Ts'o
On Fri, May 29, 2020 at 10:39:39AM +0200, Jan Nieuwenhuizen wrote:
> Theodore Y. Ts'o writes:
> 
> Hello!
> 
> > On Mon, May 25, 2020 at 09:39:40PM +0200, Jan (janneke) Nieuwenhuizen wrote:
> >> The Hurd gained[0] support for moving the translator and author
> >> fields out of the inode and into the "gnu.*" xattr namespace.
> >> 
> >> In anticipation of that, an xattr INDEX was reserved[1].  The Hurd has
> >> now been brought into compliance[2] with that.
> >> 
> >> This patch adds support for reading and writing such attributes from
> >> Linux; you can now do something like
> 
> [...]
> >
> > This patch is missing a Signed-off-by.  If you don't understand why
> > this is really important, please read: 
> >
> > https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin
> 
> Ah, that makes sense.  Sorry for omitting that/being not clear on it.
> 
> > Can you resubmit with the DCO or confirm that it's OK for me to add
> > your Signed-off-by?
> 
> Yes, that's OK, please do!  I am the original author of this patch.

Thanks, I've applied this to the ext4.git tree.

- Ted


Re: linux-next: arm64 build failed - aarch64-linux-gnu-ld: cannot find ./drivers/firmware/efi/libstub/lib.abuilt-in.a: No such file or directory

2020-06-03 Thread Ard Biesheuvel
On Wed, 3 Jun 2020 at 14:31, Naresh Kamboju  wrote:
>
> arm64 build failed on Linux-next 20200603.
>
> make -sk KBUILD_BUILD_USER=TuxBuild -C/linux -j16 ARCH=arm64
> CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=gcc CC="sccache
> aarch64-linux-gnu-gcc" O=build Image
>  #
> aarch64-linux-gnu-ld: cannot find
> ./drivers/firmware/efi/libstub/lib.abuilt-in.a: No such file or
> directory
>  make[1]: *** [/linux/Makefile:1132: vmlinux] Error 1
>

9203be13ef5bfd1fcf39f7b7fe94597d2d2a0eb4 is the first bad commit
commit 9203be13ef5bfd1fcf39f7b7fe94597d2d2a0eb4
Author: Masahiro Yamada 
Date:   Mon Jun 1 14:56:59 2020 +0900

kbuild: refactor KBUILD_VMLINUX_{OBJS,LIBS} calculation

Do not overwrite core-y or drivers-y. Remove libs-y1 and libs-y2.

Signed-off-by: Masahiro Yamada 


linux-next: arm64 build failed - aarch64-linux-gnu-ld: cannot find ./drivers/firmware/efi/libstub/lib.abuilt-in.a: No such file or directory

2020-06-03 Thread Naresh Kamboju
arm64 build failed on Linux-next 20200603.

make -sk KBUILD_BUILD_USER=TuxBuild -C/linux -j16 ARCH=arm64
CROSS_COMPILE=aarch64-linux-gnu- HOSTCC=gcc CC="sccache
aarch64-linux-gnu-gcc" O=build Image
 #
aarch64-linux-gnu-ld: cannot find
./drivers/firmware/efi/libstub/lib.abuilt-in.a: No such file or
directory
 make[1]: *** [/linux/Makefile:1132: vmlinux] Error 1

-- 
Linaro LKFT
https://lkft.linaro.org


Re: [PATCH v2] ext4: support xattr gnu.* namespace for the Hurd

2020-05-29 Thread Jan Nieuwenhuizen
Theodore Y. Ts'o writes:

Hello!

> On Mon, May 25, 2020 at 09:39:40PM +0200, Jan (janneke) Nieuwenhuizen wrote:
>> The Hurd gained[0] support for moving the translator and author
>> fields out of the inode and into the "gnu.*" xattr namespace.
>> 
>> In anticipation of that, an xattr INDEX was reserved[1].  The Hurd has
>> now been brought into compliance[2] with that.
>> 
>> This patch adds support for reading and writing such attributes from
>> Linux; you can now do something like

[...]
>
> This patch is missing a Signed-off-by.  If you don't understand why
> this is really important, please read: 
>
> https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin

Ah, that makes sense.  Sorry for omitting that/being not clear on it.

> Can you resubmit with the DCO or confirm that it's OK for me to add
> your Signed-off-by?

Yes, that's OK, please do!  I am the original author of this patch.

Greetings,
Janneke

-- 
Jan Nieuwenhuizen  | GNU LilyPond http://lilypond.org
Freelance IT http://JoyofSource.com | Avatar® http://AvatarAcademy.com


Re: [PATCH v2] ext4: support xattr gnu.* namespace for the Hurd

2020-05-28 Thread Theodore Y. Ts'o
On Mon, May 25, 2020 at 09:39:40PM +0200, Jan (janneke) Nieuwenhuizen wrote:
> The Hurd gained[0] support for moving the translator and author
> fields out of the inode and into the "gnu.*" xattr namespace.
> 
> In anticipation of that, an xattr INDEX was reserved[1].  The Hurd has
> now been brought into compliance[2] with that.
> 
> This patch adds support for reading and writing such attributes from
> Linux; you can now do something like
> 
> mkdir -p hurd-root/servers/socket
> touch hurd-root/servers/socket/1
> setfattr --name=gnu.translator --value='"/hurd/pflocal\0"' \
> hurd-root/servers/socket/1
> getfattr --name=gnu.translator hurd-root/servers/socket/1
> # file: 1
> gnu.translator="/hurd/pflocal"
> 
> to setup a pipe translator, which is being used to create[3] a
> vm-image for the Hurd from GNU Guix.
> 
> [0] https://summerofcode.withgoogle.com/projects/#5869799859027968
> [1] 
> https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3980bd3b406addb327d858aebd19e229ea340b9a
> [2] 
> https://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=a04c7bf83172faa7cb080fbe3b6c04a8415ca645
> [3] https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-hurd-vm

This patch is missing a Signed-off-by.  If you don't understand why
this is really important, please read: 

https://www.kernel.org/doc/html/latest/process/submitting-patches.html#sign-your-work-the-developer-s-certificate-of-origin

Can you resubmit with the DCO or confirm that it's OK for me to add your 
Signed-off-by?

  - Ted
  


[PATCH v2] ext4: support xattr gnu.* namespace for the Hurd

2020-05-25 Thread Jan (janneke) Nieuwenhuizen
The Hurd gained[0] support for moving the translator and author
fields out of the inode and into the "gnu.*" xattr namespace.

In anticipation of that, an xattr INDEX was reserved[1].  The Hurd has
now been brought into compliance[2] with that.

This patch adds support for reading and writing such attributes from
Linux; you can now do something like

mkdir -p hurd-root/servers/socket
touch hurd-root/servers/socket/1
setfattr --name=gnu.translator --value='"/hurd/pflocal\0"' \
hurd-root/servers/socket/1
getfattr --name=gnu.translator hurd-root/servers/socket/1
# file: 1
gnu.translator="/hurd/pflocal"

to setup a pipe translator, which is being used to create[3] a
vm-image for the Hurd from GNU Guix.

[0] https://summerofcode.withgoogle.com/projects/#5869799859027968
[1] 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=3980bd3b406addb327d858aebd19e229ea340b9a
[2] 
https://git.savannah.gnu.org/cgit/hurd/hurd.git/commit/?id=a04c7bf83172faa7cb080fbe3b6c04a8415ca645
[3] https://git.savannah.gnu.org/cgit/guix.git/log/?h=wip-hurd-vm
---
 fs/ext4/Makefile   |  3 ++-
 fs/ext4/xattr.c|  2 ++
 fs/ext4/xattr.h|  1 +
 fs/ext4/xattr_hurd.c   | 51 ++
 include/uapi/linux/xattr.h |  4 +++
 5 files changed, 60 insertions(+), 1 deletion(-)
 create mode 100644 fs/ext4/xattr_hurd.c

diff --git a/fs/ext4/Makefile b/fs/ext4/Makefile
index 4ccb3c9189d8..2e42f47a7f98 100644
--- a/fs/ext4/Makefile
+++ b/fs/ext4/Makefile
@@ -9,7 +9,8 @@ ext4-y  := balloc.o bitmap.o block_validity.o dir.o ext4_jbd2.o 
extents.o \
extents_status.o file.o fsmap.o fsync.o hash.o ialloc.o \
indirect.o inline.o inode.o ioctl.o mballoc.o migrate.o \
mmp.o move_extent.o namei.o page-io.o readpage.o resize.o \
-   super.o symlink.o sysfs.o xattr.o xattr_trusted.o xattr_user.o
+   super.o symlink.o sysfs.o xattr.o xattr_hurd.o xattr_trusted.o \
+   xattr_user.o
 
 ext4-$(CONFIG_EXT4_FS_POSIX_ACL)   += acl.o
 ext4-$(CONFIG_EXT4_FS_SECURITY)+= xattr_security.o
diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
index 9b29a40738ac..7d2f6576d954 100644
--- a/fs/ext4/xattr.c
+++ b/fs/ext4/xattr.c
@@ -93,6 +93,7 @@ static const struct xattr_handler * const 
ext4_xattr_handler_map[] = {
 #ifdef CONFIG_EXT4_FS_SECURITY
[EXT4_XATTR_INDEX_SECURITY]  = &ext4_xattr_security_handler,
 #endif
+   [EXT4_XATTR_INDEX_HURD]  = &ext4_xattr_hurd_handler,
 };
 
 const struct xattr_handler *ext4_xattr_handlers[] = {
@@ -105,6 +106,7 @@ const struct xattr_handler *ext4_xattr_handlers[] = {
 #ifdef CONFIG_EXT4_FS_SECURITY
&ext4_xattr_security_handler,
 #endif
+   &ext4_xattr_hurd_handler,
NULL
 };
 
diff --git a/fs/ext4/xattr.h b/fs/ext4/xattr.h
index ffe21ac77f78..730b91fa0dd7 100644
--- a/fs/ext4/xattr.h
+++ b/fs/ext4/xattr.h
@@ -124,6 +124,7 @@ struct ext4_xattr_inode_array {
 extern const struct xattr_handler ext4_xattr_user_handler;
 extern const struct xattr_handler ext4_xattr_trusted_handler;
 extern const struct xattr_handler ext4_xattr_security_handler;
+extern const struct xattr_handler ext4_xattr_hurd_handler;
 
 #define EXT4_XATTR_NAME_ENCRYPTION_CONTEXT "c"
 
diff --git a/fs/ext4/xattr_hurd.c b/fs/ext4/xattr_hurd.c
new file mode 100644
index ..8cfa74a56361
--- /dev/null
+++ b/fs/ext4/xattr_hurd.c
@@ -0,0 +1,51 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * linux/fs/ext4/xattr_hurd.c
+ * Handler for extended gnu attributes for the Hurd.
+ *
+ * Copyright (C) 2001 by Andreas Gruenbacher, 
+ * Copyright (C) 2020 by Jan (janneke) Nieuwenhuizen, 
+ */
+
+#include 
+#include 
+#include "ext4.h"
+#include "xattr.h"
+
+static bool
+ext4_xattr_hurd_list(struct dentry *dentry)
+{
+   return test_opt(dentry->d_sb, XATTR_USER);
+}
+
+static int
+ext4_xattr_hurd_get(const struct xattr_handler *handler,
+   struct dentry *unused, struct inode *inode,
+   const char *name, void *buffer, size_t size)
+{
+   if (!test_opt(inode->i_sb, XATTR_USER))
+   return -EOPNOTSUPP;
+
+   return ext4_xattr_get(inode, EXT4_XATTR_INDEX_HURD,
+ name, buffer, size);
+}
+
+static int
+ext4_xattr_hurd_set(const struct xattr_handler *handler,
+   struct dentry *unused, struct inode *inode,
+   const char *name, const void *value,
+   size_t size, int flags)
+{
+   if (!test_opt(inode->i_sb, XATTR_USER))
+   return -EOPNOTSUPP;
+
+   return ext4_xattr_set(inode, EXT4_XATTR_INDEX_HURD,
+ name, value, size, flags);
+}
+
+const struct xattr_handler ext4_xattr_hurd_handler = {
+   .prefix = XATTR_HURD_PREFIX,
+   .list   = ext4_xattr_hu

[PATCH] [NOT APPLICABLE YET] kbuild: speed up incremental build for the new GNU Make?

2019-08-22 Thread Masahiro Yamada
It has been 3 years since GNU Make 4.2.1 was released. The maintainer
of GNU Make, Paul Smith, has announced that the new version (4.3?) will
be released soon.

I reported a bug about the $? behavior some time ago, but it has not
been fixed yet. I am eager to see it fixed for the new release.
[https://savannah.gnu.org/bugs/?55532]

This is a hypothetical patch to demonstrate how it would be beneficial
for the Linux kernel build if it were fixed in time.

The incremental build of Linux kernel is somewhat slow, especially when
lots of objects are compiled. The incremental build of allmodconfig
typically takes a couple of minutes even when none of the objects needs
to be rebuilt.

The time-consuming part in the incremental build is the evaluation of
if_changed* macros since they are used in the recipes to compile C and
assembly source files into objects.

I notice the following code in if_changed* is expensive:

  $(filter-out $(PHONY) $(wildcard $^),$^)

In the incremental build, every object has its .*.cmd file, which
contains the auto-generated list of included headers. So, $^ are
expanded into the long list of the source file + included headers,
and $(wildcard $^) checks whether they exist.

It may not be clear why this check exists there.

Here is the record of my research.

[1] The first code addition into Kbuild

This code dates back to 2002. It is the pre-git era. So, I copy-pasted
it from the historical git tree.

| commit 4a6db0791528c220655b063cf13fefc8470dbfee (HEAD)
| Author: Kai Germaschewski 
| Date:   Mon Jun 17 00:22:37 2002 -0500
|
| kbuild: Handle removed headers
|
| New and old way to handle dependencies would choke when a file
| #include'd by other files was removed, since the dependency on it was
| still recorded, but since it was gone, make has no idea what to do about
| it (and would complain with "No rule to make  ...")
|
| We now add targets for all the previously included files, so make will
| just ignore them if they disappear.
|
| diff --git a/Rules.make b/Rules.make
| index 6ef827d3df39..7db5301ea7db 100644
| --- a/Rules.make
| +++ b/Rules.make
| @@ -446,7 +446,7 @@ if_changed = $(if $(strip $? \
|  # execute the command and also postprocess generated .d dependencies
|  # file
|
| -if_changed_dep = $(if $(strip $? \
| +if_changed_dep = $(if $(strip $? $(filter-out FORCE $(wildcard $^),$^)\
|   $(filter-out $(cmd_$(1)),$(cmd_$@))\
|   $(filter-out $(cmd_$@),$(cmd_$(1,\
| @set -e; \
| diff --git a/scripts/fixdep.c b/scripts/fixdep.c
| index b5d7bee8efc7..db45bd1888c0 100644
| --- a/scripts/fixdep.c
| +++ b/scripts/fixdep.c
| @@ -292,7 +292,7 @@ void parse_dep_file(void *map, size_t len)
| exit(1);
| }
| memcpy(s, m, p-m); s[p-m] = 0;
| -   printf("%s: \\\n", target);
| +   printf("deps_%s := \\\n", target);
| m = p+1;
|
| clear_config();
| @@ -314,7 +314,8 @@ void parse_dep_file(void *map, size_t len)
| }
| m = p + 1;
| }
| -   printf("\n");
| +   printf("\n%s: $(deps_%s)\n\n", target, target);
| +   printf("$(deps_%s):\n", target);
|  }
|
|  void print_deps(void)

The "No rule to make  ..." error can be solved by passing -MP to
the compiler, but I think the detection of header removal is a good
feature. When a header is removed, all source files that previously
included it should be re-compiled. This makes sure we has correctly
got rid of #include directives of it.

This is also related with the behavior of $?. The manual says:

  $?
  The names of all the prerequisites that are newer than the target,
  with spaces between them.

This does not address whether a non-existent prerequisite is considered
to be newer than the target.

At this point of time, GNU Make 3.7x was used, where the $? did not
include non-existent prerequisites. Therefore,

  $(filter-out FORCE $(wildcard $^),$^)

was added to detect the header removal, and to rebuild the related
objects if it is the case.

[2] Change of $? behavior

Later, the behavior of $? was changed (fixed) to include prerequisites
that did not exist.

First, GNU Make commit 64e16d6c00a5 ("Various changes getting ready for
the release of 3.81.") changed it, but in the release test of 3.81, it
turned out to break the kernel build.

Some materials:

 - http://lists.gnu.org/archive/html/bug-make/2006-03/msg3.html
 - https://savannah.gnu.org/bugs/?16002
 - https://savannah.gnu.org/bugs/?16051

Then, GNU Make commit 6d8d9b74d9c5 ("Numerous updates to tests for
issues found on Cygwin and Windows.") reverted it for the 3.81 release
to give Linux kernel time to adjust to the new behavior.

After the 3.81 release, GNU Make commit 7595f38f62af ("Fixed a number
of documentation bugs, plus some build/install issues:") re-added it.

[3] Adjustm

Re: Linux behaviour problems comes down to GNU idol based on Morphine Psychosis

2019-06-19 Thread Ywe Cærlyn
Yes, then I think we have solved the behavioural problem of Linux, and it seems 
to come down to the GNU idol, that seems based on Morphine Psychosis. And such 
the worst Stallman fans, have irate behaviour.

And much have pointed to that already, and much criticism done, and indeed the 
GNU idol should be gone.

And indeed I concluded this a while back, and suggested a Fair Labour  
direction for the OS instead. And replacing LSD culture, with Interculture, and 
Islam as the Bible is altered with Thorian belief, similar to LSD. then we keep 
the relevant of developments, and replace the irrelevant with interculture. And 
indeed the "acid" type never could do finances. Getting the Thor/Odin out, with 
it sectunrest and reality in. (Nor could they do mastering indeed, and rather 
than loudnesswar, we do suggest -10dB RMS masters too :)).

Peace (Go With Thee), as was the original greeting, and As-Salam is indeed a 
name of The Divine.

Eyx OS
https://www.youtube.com/channel/UCR3gmLVjHS5A702wo4bol_Q


Re: sh4-linux-gnu-ld: arch/sh/kernel/cpu/sh2/clock-sh7619.o:undefined reference to `followparent_recalc'

2019-04-29 Thread Randy Dunlap
On 4/29/19 9:48 PM, kbuild test robot wrote:
> Hi Randy,
> 
> It's probably a bug fix that unveils the link errors.

Yoshinori Sato (cc-ed) has a patch for this.  I guess that it's not in the 
arch/sh
git tree yet ???  or wherever arch/sh changes come from.



> tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
> master
> head:   83a50840e72a5a964b4704fcdc2fbb2d771015ab
> commit: acaf892ecbf5be7710ae05a61fd43c668f68ad95 sh: fix multiple function 
> definition build errors
> date:   3 weeks ago
> config: sh-allmodconfig (attached as .config)
> compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
> reproduce:
> wget 
> https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
> ~/bin/make.cross
> chmod +x ~/bin/make.cross
> git checkout acaf892ecbf5be7710ae05a61fd43c668f68ad95
> # save the attached .config to linux build tree
> GCC_VERSION=7.2.0 make.cross ARCH=sh 
> 
> If you fix the issue, kindly add following tag
> Reported-by: kbuild test robot 
> 
> All errors (new ones prefixed by >>):
> 
>>> sh4-linux-gnu-ld: arch/sh/kernel/cpu/sh2/clock-sh7619.o:(.data+0x1c): 
>>> undefined reference to `followparent_recalc'
> 
> ---
> 0-DAY kernel test infrastructureOpen Source Technology Center
> https://lists.01.org/pipermail/kbuild-all   Intel Corporation
> 


-- 
~Randy


sh4-linux-gnu-ld: arch/sh/kernel/cpu/sh2/clock-sh7619.o:undefined reference to `followparent_recalc'

2019-04-29 Thread kbuild test robot
Hi Randy,

It's probably a bug fix that unveils the link errors.

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   83a50840e72a5a964b4704fcdc2fbb2d771015ab
commit: acaf892ecbf5be7710ae05a61fd43c668f68ad95 sh: fix multiple function 
definition build errors
date:   3 weeks ago
config: sh-allmodconfig (attached as .config)
compiler: sh4-linux-gnu-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
chmod +x ~/bin/make.cross
git checkout acaf892ecbf5be7710ae05a61fd43c668f68ad95
# save the attached .config to linux build tree
GCC_VERSION=7.2.0 make.cross ARCH=sh 

If you fix the issue, kindly add following tag
Reported-by: kbuild test robot 

All errors (new ones prefixed by >>):

>> sh4-linux-gnu-ld: arch/sh/kernel/cpu/sh2/clock-sh7619.o:(.data+0x1c): 
>> undefined reference to `followparent_recalc'

---
0-DAY kernel test infrastructureOpen Source Technology Center
https://lists.01.org/pipermail/kbuild-all   Intel Corporation


.config.gz
Description: application/gzip


Re: [RFC PATCH 01/68] kbuild: skip sub-make for in-tree build with GNU Make 4.x

2019-04-10 Thread David Howells
Masahiro Yamada  wrote:

> Why should this patch be included in a
> totally unrelated patch series?

Sorry, I forgot to exclude it.  It's in all my branches that I've touched
since upstream got broken.  I've now rebased and it's gone from this branch.

David


Re: [RFC PATCH 01/68] kbuild: skip sub-make for in-tree build with GNU Make 4.x

2019-03-30 Thread Masahiro Yamada
On Thu, Mar 28, 2019 at 9:53 AM Masahiro Yamada
 wrote:
>
> David,
>
>
> On Thu, Mar 28, 2019 at 8:41 AM David Howells  wrote:
> >
> > From: Masahiro Yamada 
> >
> > Commit 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
> > annoyed people who want to wrap the top Makefile with GNUmakefile
> > or something in order to customize it for their use.
> >
> > On second thought, we do not need to run the sub-make for in-tree
> > build with Make 4.x because the 'MAKEFLAGS += -rR' issue only happens
> > on GNU Make 3.x.
> >
> > With this commit, people will get back the workflow, and the Debian
> > make-kpkg will still work.
> >
> > Fixes: 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
> > Reported-by: Andreas Schwab 
> > Reported-by: David Howells 
> > Signed-off-by: Masahiro Yamada 
> > Signed-off-by: David Howells 
>
>
> Why should this patch be included in a
> totally unrelated patch series?
>
>
> I already applied this to my fixes branch,
> and am planning to send a PR to Linus soon.
>
> (Sorry, I missed to send a PR for -rc2)


Now, this landed in Linus tree.



-- 
Best Regards
Masahiro Yamada


Re: [RFC PATCH 01/68] kbuild: skip sub-make for in-tree build with GNU Make 4.x

2019-03-27 Thread Masahiro Yamada
David,


On Thu, Mar 28, 2019 at 8:41 AM David Howells  wrote:
>
> From: Masahiro Yamada 
>
> Commit 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
> annoyed people who want to wrap the top Makefile with GNUmakefile
> or something in order to customize it for their use.
>
> On second thought, we do not need to run the sub-make for in-tree
> build with Make 4.x because the 'MAKEFLAGS += -rR' issue only happens
> on GNU Make 3.x.
>
> With this commit, people will get back the workflow, and the Debian
> make-kpkg will still work.
>
> Fixes: 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
> Reported-by: Andreas Schwab 
> Reported-by: David Howells 
> Signed-off-by: Masahiro Yamada 
> Signed-off-by: David Howells 


Why should this patch be included in a
totally unrelated patch series?


I already applied this to my fixes branch,
and am planning to send a PR to Linus soon.

(Sorry, I missed to send a PR for -rc2)




> ---
>
>  Makefile |   31 +++
>  1 file changed, 15 insertions(+), 16 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index c0a34064c574..cd38d203e71a 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -31,26 +31,12 @@ _all:
>  # descending is started. They are now explicitly listed as the
>  # prepare rule.
>
> -# Ugly workaround for Debian make-kpkg:
> -# make-kpkg directly includes the top Makefile of Linux kernel. In such a 
> case,
> -# skip sub-make to support debian_* targets in ruleset/kernel_version.mk, but
> -# displays warning to discourage such abusage.
> -ifneq ($(word 2, $(MAKEFILE_LIST)),)
> -$(warning Do not include top Makefile of Linux Kernel)
> -sub-make-done := 1
> -MAKEFLAGS += -rR
> -endif
> -
>  ifneq ($(sub-make-done),1)
>
>  # Do not use make's built-in rules and variables
>  # (this increases performance and avoids hard-to-debug behaviour)
>  MAKEFLAGS += -rR
>
> -# 'MAKEFLAGS += -rR' does not become immediately effective for old
> -# GNU Make versions. Cancel implicit rules for this Makefile.
> -$(lastword $(MAKEFILE_LIST)): ;
> -
>  # Avoid funny character set dependencies
>  unexport LC_ALL
>  LC_COLLATE=C
> @@ -153,6 +139,7 @@ $(if $(KBUILD_OUTPUT),, \
>  # 'sub-make' below.
>  MAKEFLAGS += --include-dir=$(CURDIR)
>
> +need-sub-make := 1
>  else
>
>  # Do not print "Entering directory ..." at all for in-tree build.
> @@ -160,6 +147,15 @@ MAKEFLAGS += --no-print-directory
>
>  endif # ifneq ($(KBUILD_OUTPUT),)
>
> +ifneq ($(filter 3.%,$(MAKE_VERSION)),)
> +# 'MAKEFLAGS += -rR' does not immediately become effective for GNU Make 3.x
> +# We need to run sub-make to avoid implicit rules in the top Makefile.
> +need-sub-make := 1
> +# Cancel implicit rules for this Makefile.
> +$(lastword $(MAKEFILE_LIST)): ;
> +endif
> +
> +ifeq ($(need-sub-make),1)
>  PHONY += $(MAKECMDGOALS) sub-make
>
>  $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: 
> sub-make
> @@ -171,8 +167,11 @@ sub-make:
> $(if $(KBUILD_OUTPUT),-C $(KBUILD_OUTPUT) KBUILD_SRC=$(CURDIR)) \
> -f $(CURDIR)/Makefile $(filter-out _all sub-make,$(MAKECMDGOALS))
>
> -else # sub-make-done
> +endif # need-sub-make
> +endif # sub-make-done
> +
>  # We process the rest of the Makefile if this is the final invocation of make
> +ifeq ($(need-sub-make),)
>
>  # Do not print "Entering directory ...",
>  # but we want to display it when entering to the output directory
> @@ -1757,7 +1756,7 @@ existing-targets := $(wildcard $(sort $(targets)))
>
>  endif   # ifeq ($(config-targets),1)
>  endif   # ifeq ($(mixed-targets),1)
> -endif   # sub-make-done
> +endif   # need-sub-make
>
>  PHONY += FORCE
>  FORCE:
>


-- 
Best Regards
Masahiro Yamada


[RFC PATCH 01/68] kbuild: skip sub-make for in-tree build with GNU Make 4.x

2019-03-27 Thread David Howells
From: Masahiro Yamada 

Commit 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
annoyed people who want to wrap the top Makefile with GNUmakefile
or something in order to customize it for their use.

On second thought, we do not need to run the sub-make for in-tree
build with Make 4.x because the 'MAKEFLAGS += -rR' issue only happens
on GNU Make 3.x.

With this commit, people will get back the workflow, and the Debian
make-kpkg will still work.

Fixes: 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
Reported-by: Andreas Schwab 
Reported-by: David Howells 
Signed-off-by: Masahiro Yamada 
Signed-off-by: David Howells 
---

 Makefile |   31 +++
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/Makefile b/Makefile
index c0a34064c574..cd38d203e71a 100644
--- a/Makefile
+++ b/Makefile
@@ -31,26 +31,12 @@ _all:
 # descending is started. They are now explicitly listed as the
 # prepare rule.
 
-# Ugly workaround for Debian make-kpkg:
-# make-kpkg directly includes the top Makefile of Linux kernel. In such a case,
-# skip sub-make to support debian_* targets in ruleset/kernel_version.mk, but
-# displays warning to discourage such abusage.
-ifneq ($(word 2, $(MAKEFILE_LIST)),)
-$(warning Do not include top Makefile of Linux Kernel)
-sub-make-done := 1
-MAKEFLAGS += -rR
-endif
-
 ifneq ($(sub-make-done),1)
 
 # Do not use make's built-in rules and variables
 # (this increases performance and avoids hard-to-debug behaviour)
 MAKEFLAGS += -rR
 
-# 'MAKEFLAGS += -rR' does not become immediately effective for old
-# GNU Make versions. Cancel implicit rules for this Makefile.
-$(lastword $(MAKEFILE_LIST)): ;
-
 # Avoid funny character set dependencies
 unexport LC_ALL
 LC_COLLATE=C
@@ -153,6 +139,7 @@ $(if $(KBUILD_OUTPUT),, \
 # 'sub-make' below.
 MAKEFLAGS += --include-dir=$(CURDIR)
 
+need-sub-make := 1
 else
 
 # Do not print "Entering directory ..." at all for in-tree build.
@@ -160,6 +147,15 @@ MAKEFLAGS += --no-print-directory
 
 endif # ifneq ($(KBUILD_OUTPUT),)
 
+ifneq ($(filter 3.%,$(MAKE_VERSION)),)
+# 'MAKEFLAGS += -rR' does not immediately become effective for GNU Make 3.x
+# We need to run sub-make to avoid implicit rules in the top Makefile.
+need-sub-make := 1
+# Cancel implicit rules for this Makefile.
+$(lastword $(MAKEFILE_LIST)): ;
+endif
+
+ifeq ($(need-sub-make),1)
 PHONY += $(MAKECMDGOALS) sub-make
 
 $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
@@ -171,8 +167,11 @@ sub-make:
$(if $(KBUILD_OUTPUT),-C $(KBUILD_OUTPUT) KBUILD_SRC=$(CURDIR)) \
-f $(CURDIR)/Makefile $(filter-out _all sub-make,$(MAKECMDGOALS))
 
-else # sub-make-done
+endif # need-sub-make
+endif # sub-make-done
+
 # We process the rest of the Makefile if this is the final invocation of make
+ifeq ($(need-sub-make),)
 
 # Do not print "Entering directory ...",
 # but we want to display it when entering to the output directory
@@ -1757,7 +1756,7 @@ existing-targets := $(wildcard $(sort $(targets)))
 
 endif   # ifeq ($(config-targets),1)
 endif   # ifeq ($(mixed-targets),1)
-endif   # sub-make-done
+endif   # need-sub-make
 
 PHONY += FORCE
 FORCE:



Re: [PATCH] kbuild: skip sub-make for in-tree build with GNU Make 4.x

2019-03-20 Thread Masahiro Yamada
On Tue, Mar 19, 2019 at 1:03 PM Masahiro Yamada
 wrote:
>
> Commit 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
> annoyed people who want to wrap the top Makefile with GNUmakefile
> or something in order to customize it for their use.
>
> On second thought, we do not need to run the sub-make for in-tree
> build with Make 4.x because the 'MAKEFLAGS += -rR' issue only happens
> on GNU Make 3.x.
>
> With this commit, people will get back the workflow, and the Debian
> make-kpkg will still work.
>
> Fixes: 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
> Reported-by: Andreas Schwab 
> Reported-by: David Howells 
> Signed-off-by: Masahiro Yamada 
> ---

Applied to linux-kbuild/fixes.


>
>  Makefile | 31 +++
>  1 file changed, 15 insertions(+), 16 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 99c0530..d9591f2 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -31,26 +31,12 @@ _all:
>  # descending is started. They are now explicitly listed as the
>  # prepare rule.
>
> -# Ugly workaround for Debian make-kpkg:
> -# make-kpkg directly includes the top Makefile of Linux kernel. In such a 
> case,
> -# skip sub-make to support debian_* targets in ruleset/kernel_version.mk, but
> -# displays warning to discourage such abusage.
> -ifneq ($(word 2, $(MAKEFILE_LIST)),)
> -$(warning Do not include top Makefile of Linux Kernel)
> -sub-make-done := 1
> -MAKEFLAGS += -rR
> -endif
> -
>  ifneq ($(sub-make-done),1)
>
>  # Do not use make's built-in rules and variables
>  # (this increases performance and avoids hard-to-debug behaviour)
>  MAKEFLAGS += -rR
>
> -# 'MAKEFLAGS += -rR' does not become immediately effective for old
> -# GNU Make versions. Cancel implicit rules for this Makefile.
> -$(lastword $(MAKEFILE_LIST)): ;
> -
>  # Avoid funny character set dependencies
>  unexport LC_ALL
>  LC_COLLATE=C
> @@ -153,6 +139,7 @@ $(if $(KBUILD_OUTPUT),, \
>  # 'sub-make' below.
>  MAKEFLAGS += --include-dir=$(CURDIR)
>
> +need-sub-make := 1
>  else
>
>  # Do not print "Entering directory ..." at all for in-tree build.
> @@ -160,6 +147,15 @@ MAKEFLAGS += --no-print-directory
>
>  endif # ifneq ($(KBUILD_OUTPUT),)
>
> +ifneq ($(filter 3.%,$(MAKE_VERSION)),)
> +# 'MAKEFLAGS += -rR' does not immediately become effective for GNU Make 3.x
> +# We need to run sub-make to avoid implicit rules in the top Makefile.
> +need-sub-make := 1
> +# Cancel implicit rules for this Makefile.
> +$(lastword $(MAKEFILE_LIST)): ;
> +endif
> +
> +ifeq ($(need-sub-make),1)
>  PHONY += $(MAKECMDGOALS) sub-make
>
>  $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: 
> sub-make
> @@ -171,8 +167,11 @@ sub-make:
> $(if $(KBUILD_OUTPUT),-C $(KBUILD_OUTPUT) KBUILD_SRC=$(CURDIR)) \
> -f $(CURDIR)/Makefile $(filter-out _all sub-make,$(MAKECMDGOALS))
>
> -else # sub-make-done
> +endif # need-sub-make
> +endif # sub-make-done
> +
>  # We process the rest of the Makefile if this is the final invocation of make
> +ifeq ($(need-sub-make),)
>
>  # Do not print "Entering directory ...",
>  # but we want to display it when entering to the output directory
> @@ -1757,7 +1756,7 @@ existing-targets := $(wildcard $(sort $(targets)))
>
>  endif   # ifeq ($(config-targets),1)
>  endif   # ifeq ($(mixed-targets),1)
> -endif   # sub-make-done
> +endif   # need-sub-make
>
>  PHONY += FORCE
>  FORCE:
> --
> 2.7.4
>


-- 
Best Regards
Masahiro Yamada


[PATCH] kbuild: skip sub-make for in-tree build with GNU Make 4.x

2019-03-18 Thread Masahiro Yamada
Commit 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
annoyed people who want to wrap the top Makefile with GNUmakefile
or something in order to customize it for their use.

On second thought, we do not need to run the sub-make for in-tree
build with Make 4.x because the 'MAKEFLAGS += -rR' issue only happens
on GNU Make 3.x.

With this commit, people will get back the workflow, and the Debian
make-kpkg will still work.

Fixes: 2b50f7ab6368 ("kbuild: add workaround for Debian make-kpkg")
Reported-by: Andreas Schwab 
Reported-by: David Howells 
Signed-off-by: Masahiro Yamada 
---

 Makefile | 31 +++
 1 file changed, 15 insertions(+), 16 deletions(-)

diff --git a/Makefile b/Makefile
index 99c0530..d9591f2 100644
--- a/Makefile
+++ b/Makefile
@@ -31,26 +31,12 @@ _all:
 # descending is started. They are now explicitly listed as the
 # prepare rule.
 
-# Ugly workaround for Debian make-kpkg:
-# make-kpkg directly includes the top Makefile of Linux kernel. In such a case,
-# skip sub-make to support debian_* targets in ruleset/kernel_version.mk, but
-# displays warning to discourage such abusage.
-ifneq ($(word 2, $(MAKEFILE_LIST)),)
-$(warning Do not include top Makefile of Linux Kernel)
-sub-make-done := 1
-MAKEFLAGS += -rR
-endif
-
 ifneq ($(sub-make-done),1)
 
 # Do not use make's built-in rules and variables
 # (this increases performance and avoids hard-to-debug behaviour)
 MAKEFLAGS += -rR
 
-# 'MAKEFLAGS += -rR' does not become immediately effective for old
-# GNU Make versions. Cancel implicit rules for this Makefile.
-$(lastword $(MAKEFILE_LIST)): ;
-
 # Avoid funny character set dependencies
 unexport LC_ALL
 LC_COLLATE=C
@@ -153,6 +139,7 @@ $(if $(KBUILD_OUTPUT),, \
 # 'sub-make' below.
 MAKEFLAGS += --include-dir=$(CURDIR)
 
+need-sub-make := 1
 else
 
 # Do not print "Entering directory ..." at all for in-tree build.
@@ -160,6 +147,15 @@ MAKEFLAGS += --no-print-directory
 
 endif # ifneq ($(KBUILD_OUTPUT),)
 
+ifneq ($(filter 3.%,$(MAKE_VERSION)),)
+# 'MAKEFLAGS += -rR' does not immediately become effective for GNU Make 3.x
+# We need to run sub-make to avoid implicit rules in the top Makefile.
+need-sub-make := 1
+# Cancel implicit rules for this Makefile.
+$(lastword $(MAKEFILE_LIST)): ;
+endif
+
+ifeq ($(need-sub-make),1)
 PHONY += $(MAKECMDGOALS) sub-make
 
 $(filter-out _all sub-make $(CURDIR)/Makefile, $(MAKECMDGOALS)) _all: sub-make
@@ -171,8 +167,11 @@ sub-make:
$(if $(KBUILD_OUTPUT),-C $(KBUILD_OUTPUT) KBUILD_SRC=$(CURDIR)) \
-f $(CURDIR)/Makefile $(filter-out _all sub-make,$(MAKECMDGOALS))
 
-else # sub-make-done
+endif # need-sub-make
+endif # sub-make-done
+
 # We process the rest of the Makefile if this is the final invocation of make
+ifeq ($(need-sub-make),)
 
 # Do not print "Entering directory ...",
 # but we want to display it when entering to the output directory
@@ -1757,7 +1756,7 @@ existing-targets := $(wildcard $(sort $(targets)))
 
 endif   # ifeq ($(config-targets),1)
 endif   # ifeq ($(mixed-targets),1)
-endif   # sub-make-done
+endif   # need-sub-make
 
 PHONY += FORCE
 FORCE:
-- 
2.7.4



Re: Can a recipients rights under GNU GPL be revoked?

2019-01-27 Thread Ivan Ivanov
Yes: The linux devs can rescind their license grant. GPLv2 is a bare
license and is revocable by the grantor. Search for "vsnsdualce" "gpl"
online to find his messages which prove that, he is a lawyer and has
investigated this subject very well. I am CC'ing him in case you'd
like to request more information. So if you didn't like the Code of
Conduct covertly accepted behind the scenes against your will, and
maybe some other questionable political decisions in technical
projects (e.g. the recent removal of useful "weboob" package which
have been a part of Debian for 8 years but got removed just because
some mad SJWs suddenly got offended at its' name) - well you know what
to do, and maybe vsnsdualce will be happy to help with your case free
of charge.

Best regards,
Ivan Ivanov

вс, 27 янв. 2019 г. в 17:55, Thomas Schmitt :
>
> Hi,
>
> Ben Finney wrote:
> > > In other words: Any copyright holder can *say* they wish to
> > > retroactively revoke the GNU GPL to some party.
>
> Well, everybody is free to express wishes. But a granted license with no
> applicable revocation clause is irrevocable.
>
> The copyright holders alltogether are entitled to grant any license
> they can agree on (and that is not illegal or legally void).
> E.g. they can grant non-GPL licenses for their GPLed software.
>
> What they cannot do is to revoke granted GPL on published versions.
>
>
> rhkra...@gmail.com wrote:
> > I believe that the
> > original author of a package could do something like create further
> > modifications to the code and create a non-free version of the code.
>
> An example is the cdrecord-wodim fork. The copyright holders did not
> release newer versions of cdrecord under GPL. So some concerned Debian
> developers used an earlier GPLed version as base of their fork named
> wodim.
>
> > Assuming that is correct, people using (or basing modifications) on the
> > (presumably) older free version could continue to use and develop based on
> > that, but would not have rights to that new non-free version.
>
> I agree and practical examples show that we are not alone.
>
> The copyright of the original authors remains, so that the forkers cannot
> change the old license until they replaced all copyrightable imaterial of
> the original authors.
>
>
> Have a nice day :)
>
> Thomas
>


GNU and Belief In Flying People - A difficult area of life - Xmas Special.

2018-11-30 Thread Ywe Cærlyn
"He did not believe in Santa Claus, he was the grinch".

People obviously have their irrational believes. Flying people indeed, Mary 
Poppins, Superman, Santa Claus, all have a special place, for many.

Over at Nerd Kool Mediaz we have a christmas special: 

Digi G' Alessio - Mushrooms (Terence McKenna Christmas Dub Special)

https://www.youtube.com/watch?v=jZKNQAXWN1U

Next time GNU Stallman prophesizes on LSD, without understandings for economics 
(like indeed most hippies were), think of Digi G' Alessio

Peas. (As indeed the NKM version goes).


Re: GNU Kind Communication Guidelines / New Code Of Conduct = Insufficient Pseudoreligion

2018-11-06 Thread Ywe Cærlyn
And indeed behaviour like Linus, who has threatened to kill people over 
printers is not acceptable.

Linus Benedict Torvalds, genius, or pisscrazy?

A song made in remembrance of Linus temper: Archetypical Geek - Printernerd 
Hate. https://www.youtube.com/watch?v=1oel17-9N7o

If indeed people do not have the sense to gather around a Fair Pay construct, 
as I am talking about, pisscrazy is your leader I guess, and the reason that 
OSs never will be good.


Re: GNU Kind Communication Guidelines / New Code Of Conduct = Insufficient Pseudoreligion

2018-10-31 Thread Ywe Cærlyn
The real philosophical background of operating systems is actually this:

I/O, first operatingsystems like layer, available source, has Biblical 
background.
Unix, a whole operating system, available source, builds on first biblical 
background.
Irix, a first multimedia OS, not available source, builds on the earlier.
GNU Is Not Unix, builds on the earlier, but in hippie times, is also associated 
with LSD.
Amiga 500, an Irix for the home computer, not available source, builds on 
earlier, and probably LSD aswell.
Microsoft Windows, not available source, builds on earlier aswell, LSD and many 
regressions aswell, with task priorities still not working after 20 years.

Uqquh Is Not A Triune O-S, fixes all this, makes available source focus again, 
and upgrades the biblical philosophy with a Quran, and a correct latinization 
of ALLAH, Uqquh. Being a global "fair pay" OS, and the only OS needed, with Fpy 
Licence and Delyar as the online currency.

The Next Thing, in Computing, respecting Labour Party politics, and work union 
efforts.

Peace!
Ywe Cærlyn
WIP - https://www.youtube.com/channel/UCR3gmLVjHS5A702wo4bol_Q


GNU Kind Communication Guidelines / New Code Of Conduct = Insufficient Pseudoreligion

2018-10-27 Thread Ywe Cærlyn
Hello.

As a researcher I started a trend in here a few years ago, where criticism of 
the lack of coherent philosophy behind Linux, now seems to have resulted in a 
few lines of pseudoreligious statements, that supposedly is the answer to this, 
called "GNU Kind Communication Guidelines" and "New Code Of Conduct".

Again, ofcourse none of this will solve anything. A full and coherent 
philosophy is needed. I/O in the 50s was indeed based in "God", and a biblical 
background. For a full coherent philosophy, globally, one needs the roots, and 
corrected roots, and that means a Quran now, with full corrected Ibrahimic 
background. Islam indeed is an inescapable growing trend, and just as any good 
development should be accepted.
.
Indeed The Quran states, deal justly, and fair pay measures should be 
implemented kernelwise. So that indeed available source can be a real 
alternative in this businessdominated sector.

A global fair pay available source system, would be the logical conclusion and 
next move, and requires such a philosophical coherence.
And one day people might be grown enough to do without Pingu idols: 
https://www.youtube.com/watch?v=N-hg7ENwFUg

Do not wait for GNU7 Unyx w/ Mate.

This is it.

Best,
Ywe Cærlyn
WIP - https://www.youtube.com/channel/UCR3gmLVjHS5A702wo4bol_Q


GNU censorship hit me again = Fed up, I am just going to say this.

2018-08-11 Thread Ywe Cærlyn
GNU senorship hit me again, on Phoronix. This is LKML, a usenet mailing 
list. So lets try again here.


Linus Torvalds, Richard Stallman, and Andrew Tanenbaum all are 
pedophilia victims. And oddly enough think they are gods because of  this.


On Linux forums, fanboys attack, because they sympathize, with this 
pantheon.


In source, GNU zealousy and the same means among others

1000 HZ Kernel Patch.
10 ms filter in sched.c
and this is just from a quick look at source.

And Phoronix mails the list and Linus pulls patches from the kernel, 
without knowing what they were, based on average performance testing. 
Average performance in a lot of cases, is not important, but rather peak 
 jitter. Gettig peak jitter down, means best performance, or "average 
performance" will not even be displayed on screen, because of jitter 
bottlenecks.


And in earlier "ricer" (abuse victim slang?) discussions it is 
supposedly obvious that turning certain optimizations on is useless. Yet 
 nobody sees "defer pop" being on, as usless, that only contributes 
jitter.


Obviously this is poor patching, poor understanding, and a poor 
internet. And LKML still is ascii, when most of the world has moved to 
better technology. Better technology, with more ID, for less obscure 
behaviour.


Will Linus scubadiving help?

No.

Tanenbaum writing books with circus on them?

No.

Stallman dancing strange dances?

No.

What is needed is a coherent monotheistic philosophy. That is where 
civilization comes from, and a good word to all, also abuse victims, 
that this is not about abuse. Neither communism, nor facism.


I am even trying a zén-concept for maximal desirelessness.

"Hacker"-space was actually already quite monotheistic. And it was never 
 intended to be poor, neither spiritually nor financially.


This is what needs to happen in computing space. Obviously.

A good and moral behaviour pattern, an adhérance to religion that 
teaches monotheism. Overriding vain egoes, and diciplining it to 
understand reality, and society at large.


I hope you understand.

Peace.

www.nyt.cloud


%ÿ4 Coding OS, Vanity gods, LKML/GNU Attiude Problems, Problematic Netelements in general.

2018-07-09 Thread Ywe Cærlyn

Slight retweak, to %ÿ4 Coding OS.

Having had a bit of feel with the namechange I think I can do even 
better. Looking at what really needs to be fixed with the internet, 
starting with Fair Pay, getting rid of poor and thieving GNU, and 
warezpups in general, LKML/GNU Attitude problems, and problematic 
netelements in general, slight final finish with retweak to %ÿ4 coding OS.


A pop-culture threeletter concept, free of as much vains gods as possible.

I hope you will enjoy. I already am.

Our research and vision for computing forward: 
https://nyt.cloud/showthread.php?tid=2


Peace,
Ywe Cærlyn
Léad
%ÿ4 Coding



make randconfig of samples/seccomp/bpf-fancy.c (4.17.3) gives "/usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such file or directory"

2018-07-05 Thread Toralf Förster


Got this at a chroot image at a stable hardened Gentoo Linux :

BuildKernel with randconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  YACCscripts/kconfig/zconf.tab.c
  LEX scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
scripts/kconfig/conf  --randconfig Kconfig
KCONFIG_SEED=0xECEA7407
#
# configuration written to .config
#
scripts/kconfig/conf  --syncconfig Kconfig
.config:4349:warning: override: reassigning to symbol KERNEL_GZIP
*
* Restart config...
*
*
* General setup
*
Cross-compiler tool prefix (CROSS_COMPILE) [] 
Compile also drivers which will not load (COMPILE_TEST) [N/y/?] n
Local version - append to kernel release (LOCALVERSION) [] 
Automatically append version information to the version string 
(LOCALVERSION_AUTO) [N/y/?] n
Kernel compression mode
> 1. Gzip (KERNEL_GZIP)
  2. Bzip2 (KERNEL_BZIP2)
  3. LZMA (KERNEL_LZMA)
  4. XZ (KERNEL_XZ)
  5. LZO (KERNEL_LZO) (NEW)
  6. LZ4 (KERNEL_LZ4)
choice[1-6?]: 
Error in reading or end of file.
Default hostname (DEFAULT_HOSTNAME) [(none)] (none)
Support for paging of anonymous memory (swap) (SWAP) [N/y/?] n
System V IPC (SYSVIPC) [Y/n/?] y
POSIX Message Queues (POSIX_MQUEUE) [Y/n/?] y
Enable process_vm_readv/writev syscalls (CROSS_MEMORY_ATTACH) [N/y/?] n
uselib syscall (USELIB) [Y/n/?] y
Auditing support (AUDIT) [N/y/?] n
CPU isolation (CPU_ISOLATION) [Y/n/?] y
Kernel .config support (IKCONFIG) [Y/n/m/?] y
  Enable access to .config through /proc/config.gz (IKCONFIG_PROC) [Y/n/?] y
Automatic process group scheduling (SCHED_AUTOGROUP) [N/y/?] n
Enable deprecated sysfs features to support old userspace tools 
(SYSFS_DEPRECATED) [N/y/?] n
Kernel->user space relay support (formerly relayfs) (RELAY) [Y/?] y
Initial RAM filesystem and RAM disk (initramfs/initrd) support (BLK_DEV_INITRD) 
[Y/n/?] y
  Initramfs source file(s) (INITRAMFS_SOURCE) [] 
  Support initial ramdisk/ramfs compressed using gzip (RD_GZIP) [Y/n/?] y
  Support initial ramdisk/ramfs compressed using bzip2 (RD_BZIP2) [Y/n/?] y
  Support initial ramdisk/ramfs compressed using LZMA (RD_LZMA) [N/y/?] n
  Support initial ramdisk/ramfs compressed using XZ (RD_XZ) [N/y/?] n
  Support initial ramdisk/ramfs compressed using LZO (RD_LZO) [N/y/?] n
  Support initial ramdisk/ramfs compressed using LZ4 (RD_LZ4) [N/y/?] n
Compiler optimization level
> 1. Optimize for performance (CC_OPTIMIZE_FOR_PERFORMANCE)
  2. Optimize for size (CC_OPTIMIZE_FOR_SIZE)
choice[1-2?]: 1
Enable bpf() system call (BPF_SYSCALL) [N/y/?] n
Enable userfaultfd() system call (USERFAULTFD) [Y/n/?] y
Embedded system (EMBEDDED) [Y/n/?] y
PC/104 support (PC104) [Y/n/?] y
Enable VM event counters for /proc/vmstat (VM_EVENT_COUNTERS) [N/y/?] n
Enable SLUB debugging support (SLUB_DEBUG) [Y/n/?] y
Enable memcg SLUB sysfs support by default (SLUB_MEMCG_SYSFS_ON) [N/y/?] n
Disable heap randomization (COMPAT_BRK) [Y/n/?] y
Choose SLAB allocator
  1. SLAB (SLAB)
> 2. SLUB (Unqueued Allocator) (SLUB)
  3. SLOB (Simple Allocator) (SLOB)
choice[1-3?]: 2
Allow slab caches to be merged (SLAB_MERGE_DEFAULT) [N/y/?] n
SLAB freelist randomization (SLAB_FREELIST_RANDOM) [N/y/?] n
Harden slab freelist metadata (SLAB_FREELIST_HARDENED) [N/y/?] n
SLUB per cpu partial cache (SLUB_CPU_PARTIAL) [Y/n/?] y
Profiling support (PROFILING) [Y/n/?] y
OProfile system profiling (OPROFILE) [N/m/y/?] n
Kprobes (KPROBES) [N/y/?] n
Optimize very unlikely/likely branches (JUMP_LABEL) [Y/n/?] y
  Static key selftest (STATIC_KEYS_SELFTEST) [Y/n/?] y
Stack Protector buffer overflow detection
  1. None (CC_STACKPROTECTOR_NONE)
  2. Regular (CC_STACKPROTECTOR_REGULAR)
> 3. Strong (CC_STACKPROTECTOR_STRONG)
  4. Automatic (CC_STACKPROTECTOR_AUTO)
choice[1-4?]: 3
Number of bits to use for ASLR of mmap base address (ARCH_MMAP_RND_BITS) [8] 8
Perform full reference count validation at the expense of speed (REFCOUNT_FULL) 
[N/y/?] n
#
# configuration written to .config
#
  SYSTBL  arch/x86/include/generated/asm/syscalls_32.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_32.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_64.h
  SYSHDR  arch/x86/include/generated/uapi/asm/unistd_x32.h
  HOSTCC  scripts/basic/bin2c
  HOSTCC  arch/x86/tools/relocs_32.o

...

  AR  samples/seccomp/built-in.a
  HOSTCC  samples/seccomp/bpf-fancy.o
In file included from /usr/include/features.h:447:0,
 from /usr/include/bits/libc-header-start.h:33,
 from /usr/include/stdio.h:27,
 from samples/seccomp/bpf-fancy.c:16:
/usr/include/gnu/stubs.h:7:11: fatal error: gnu/stubs-32.h: No such file or 
directory
 # include 
   ^~~~
compilation terminated.
make[2]: *** [scripts/Makefile.host:107: samples/seccomp/bpf-fancy.o] Error 1
make[1]: *** [scripts/Makefile.build:559: samples/seccomp] Error 2
make: *** [Makefile:1063: samples] Error 2




#
# Automatically generated file; DO NOT EDIT.
# Linux/x86 4.17.3 Kernel Configuration
#
# 

Re: [PATCH] kbuild: rpm-pkg: Support GNU tar >= 1.29

2018-03-26 Thread Masahiro Yamada
2018-03-24 2:59 GMT+09:00 Jason Gunthorpe :
> There is a change in how command line parsing is done in this version.
> Excludes and includes are now ordered with the file list. Since
> the spec file puts the file list before the exclude list it means newer
> tar ignores the excludes and packs all the build output into the
> kernel-devel RPM resulting in a huge package.
>
> Simple argument re-ordering fixes the problem.
>
> Signed-off-by: Jason Gunthorpe 
> ---

Applied to linux-kbuild/fixes. Thanks!






-- 
Best Regards
Masahiro Yamada


Re: [gnu-csky] [PATCH 00/19] C-SKY(csky) Linux Kernel Port

2018-03-26 Thread Arnd Bergmann
On Mon, Mar 26, 2018 at 5:06 PM, Sandra Loosemore
 wrote:
> On 03/26/2018 07:30 AM, Arnd Bergmann wrote:
>>
>>
>> Another interesting question is the status of your toolchain support. I
>> see your
>> github account contains binutils and gcc repositories, but they are not
>> upstream
>> yet. Are you working on getting those included in the respective upstream
>> projects already?
>
>
> We at Mentor Graphics are working on preparing the abiv2 binutils and gcc
> support for upstream submission.  The existing gcc back end for abiv1 is
> actually completely separate from the abiv2 back end and probably eventually
> needs to be merged with it, but first things first.

Ok, very good. Being able to build abiv2 is probably sufficient for testing
the kernel in a meaningful way, and if you are working on getting that
upstream, I trust that it will happen quick enough. I can always provide
toolchain binaries on kernel.org based a prerelease version like I did
for openrisc, which makes it accessible to other kernel developers doing
cross-arch changes.

  Arnd


Re: [gnu-csky] [PATCH 00/19] C-SKY(csky) Linux Kernel Port

2018-03-26 Thread Sandra Loosemore

On 03/26/2018 07:30 AM, Arnd Bergmann wrote:


Another interesting question is the status of your toolchain support. I see your
github account contains binutils and gcc repositories, but they are not upstream
yet. Are you working on getting those included in the respective upstream
projects already?


We at Mentor Graphics are working on preparing the abiv2 binutils and 
gcc support for upstream submission.  The existing gcc back end for 
abiv1 is actually completely separate from the abiv2 back end and 
probably eventually needs to be merged with it, but first things first.


-Sandra


[PATCH] kbuild: rpm-pkg: Support GNU tar >= 1.29

2018-03-23 Thread Jason Gunthorpe
There is a change in how command line parsing is done in this version.
Excludes and includes are now ordered with the file list. Since
the spec file puts the file list before the exclude list it means newer
tar ignores the excludes and packs all the build output into the
kernel-devel RPM resulting in a huge package.

Simple argument re-ordering fixes the problem.

Signed-off-by: Jason Gunthorpe 
---
 scripts/package/mkspec | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

At the very least this effects FC27.

diff --git a/scripts/package/mkspec b/scripts/package/mkspec
index 280027fad991c1..61427c6f220922 100755
--- a/scripts/package/mkspec
+++ b/scripts/package/mkspec
@@ -98,7 +98,7 @@ $Mmake %{?_smp_mflags} INSTALL_MOD_PATH=%{buildroot} 
KBUILD_SRC= modules_instal
 $S$M   rm -f %{buildroot}/lib/modules/$KERNELRELEASE/build
 $S$M   rm -f %{buildroot}/lib/modules/$KERNELRELEASE/source
 $S$M   mkdir -p %{buildroot}/usr/src/kernels/$KERNELRELEASE
-$S$M   tar cf - . $EXCLUDES | tar xf - -C 
%{buildroot}/usr/src/kernels/$KERNELRELEASE
+$S$M   tar cf - $EXCLUDES . | tar xf - -C 
%{buildroot}/usr/src/kernels/$KERNELRELEASE
 $S$M   cd %{buildroot}/lib/modules/$KERNELRELEASE
 $S$M   ln -sf /usr/src/kernels/$KERNELRELEASE build
 $S$M   ln -sf /usr/src/kernels/$KERNELRELEASE source
-- 
2.16.2



Re: [PATCH v2 6/7] arm64: explicitly pass --no-fix-cortex-a53-843419 to GNU gold

2017-11-30 Thread Nick Desaulniers
Reviewed-by: Nick Desaulniers 


[PATCH v2 0/7] Add support for GNU gold

2017-11-30 Thread Sami Tolvanen
These patches add macros for detecting the linker name and version,
and apply fixes and workarounds needed to link the arm64 kernel with
GNU gold.

Changes since v1:
  - moved LD_DEAD_CODE_DATA_ELIMINATION fixes to the beginning of the
patch set and removed mentions of gold
  - renamed ld-if-name-version to __ld-ifversion for consistency
  - cleaned up the erratum changes in arch/arm64/Makefile

Sami Tolvanen (7):
  kbuild: fix LD_DEAD_CODE_DATA_ELIMINATION
  arm64: keep .altinstructions and .altinstr_replacement
  kbuild: add ld-name macro
  kbuild: add __ld-ifversion and linker-specific macros
  arm64: fix -m for GNU gold
  arm64: explicitly pass --no-fix-cortex-a53-843419 to GNU gold
  arm64: add a workaround for GNU gold with ARM64_MODULE_PLTS

 arch/arm64/Makefile   | 17 +
 arch/arm64/kernel/module.lds  |  4 ++--
 arch/arm64/kernel/vmlinux.lds.S   |  4 ++--
 include/asm-generic/vmlinux.lds.h |  8 
 scripts/Kbuild.include| 16 
 5 files changed, 41 insertions(+), 8 deletions(-)

-- 
2.15.0.531.g2ccb3012c9-goog



[PATCH v2 5/7] arm64: fix -m for GNU gold

2017-11-30 Thread Sami Tolvanen
GNU gold supports different emulations than bfd. Use aarch64_elf64_*_vec
instead of aarch64linux.

Signed-off-by: Sami Tolvanen 
Acked-by: Yury Norov 
---
 arch/arm64/Makefile | 8 
 1 file changed, 8 insertions(+)

diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index b35788c909f1..82a0df6e865e 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -64,14 +64,22 @@ KBUILD_CPPFLAGS += -mbig-endian
 CHECKFLAGS += -D__AARCH64EB__
 AS += -EB
 LD += -EB
+ifeq ($(ld-name),gold)
+LDFLAGS+= -maarch64_elf64_be_vec
+else
 LDFLAGS+= -maarch64linuxb
+endif
 UTS_MACHINE:= aarch64_be
 else
 KBUILD_CPPFLAGS+= -mlittle-endian
 CHECKFLAGS += -D__AARCH64EL__
 AS += -EL
 LD += -EL
+ifeq ($(ld-name),gold)
+LDFLAGS+= -maarch64_elf64_le_vec
+else
 LDFLAGS+= -maarch64linux
+endif
 UTS_MACHINE:= aarch64
 endif
 
-- 
2.15.0.531.g2ccb3012c9-goog



[PATCH v2 7/7] arm64: add a workaround for GNU gold with ARM64_MODULE_PLTS

2017-11-30 Thread Sami Tolvanen
All current versions of GNU gold crash when linking kernel modules
with ARM64_MODULE_PLTS due to a known bug:

  https://sourceware.org/bugzilla/show_bug.cgi?id=14592

To work around the problem, this change removes NOLOAD from .plt
and .init.plt.

Signed-off-by: Sami Tolvanen 
Acked-by: Ard Biesheuvel 
---
 arch/arm64/kernel/module.lds | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/arm64/kernel/module.lds b/arch/arm64/kernel/module.lds
index f7c9781a9d48..eacb5c67f61e 100644
--- a/arch/arm64/kernel/module.lds
+++ b/arch/arm64/kernel/module.lds
@@ -1,4 +1,4 @@
 SECTIONS {
-   .plt (NOLOAD) : { BYTE(0) }
-   .init.plt (NOLOAD) : { BYTE(0) }
+   .plt : { BYTE(0) }
+   .init.plt : { BYTE(0) }
 }
-- 
2.15.0.531.g2ccb3012c9-goog



[PATCH v2 6/7] arm64: explicitly pass --no-fix-cortex-a53-843419 to GNU gold

2017-11-30 Thread Sami Tolvanen
Some versions of GNU gold are known to produce broken code with
--fix-cortex-a53-843419 as explained in this bug:

  https://sourceware.org/bugzilla/show_bug.cgi?id=21491

If ARM64_ERRATUM_843419 is disabled and we're using GNU gold, pass
--no-fix-cortex-a53-843419 to the linker to ensure the erratum
fix is not used even if the linker is configured to enable it by
default.

This change also adds a warning if the erratum fix is enabled and
gold version <1.14 is used.

Signed-off-by: Sami Tolvanen 
---
 arch/arm64/Makefile | 9 +
 1 file changed, 9 insertions(+)

diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index 82a0df6e865e..68eed687e468 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -26,8 +26,17 @@ ifeq ($(CONFIG_ARM64_ERRATUM_843419),y)
   ifeq ($(call ld-option, --fix-cortex-a53-843419),)
 $(warning ld does not support --fix-cortex-a53-843419; kernel may be 
susceptible to erratum)
   else
+ifeq ($(call gold-ifversion, -lt, 11400, y), y)
+$(warning This version of GNU gold may generate incorrect code with 
--fix-cortex-a53-843419;\
+   see https://sourceware.org/bugzilla/show_bug.cgi?id=21491)
+endif
 LDFLAGS_vmlinux+= --fix-cortex-a53-843419
   endif
+else
+  ifeq ($(ld-name),gold)
+# Pass --no-fix-cortex-a53-843419 to ensure the erratum fix is disabled
+LDFLAGS+= --no-fix-cortex-a53-843419
+  endif
 endif
 
 KBUILD_DEFCONFIG := defconfig
-- 
2.15.0.531.g2ccb3012c9-goog



Re: [PATCH 6/7] arm64: explicitly pass --no-fix-cortex-a53-843419 to GNU gold

2017-11-30 Thread Sami Tolvanen
On Wed, Nov 29, 2017 at 04:30:33PM -0800, Nick Desaulniers wrote:
> Rather than:
> 
> if CONFIG_ARM64_ERRATUM_843419 == y:
>   ...
> if CONFIG_ARM64_ERRATUM_843419 == '':
>   ...
> 
> could this be:
> 
> if CONFIG_ARM64_ERRATUM_843419 == y:
>   ...
> else
>   ...
> 
> ?

Sure. I'll clean this up in v2.

Sami


Re: [PATCH 1/7] kbuild: add ld-name macro and support for GNU gold

2017-11-30 Thread Sami Tolvanen
On Wed, Nov 29, 2017 at 04:32:52PM -0800, Nick Desaulniers wrote:
> Right, but you're still only ever using one linker per build, correct?

Correct. LDFLAGS_GOLD makes it move convenient to add gold specific flags
without explicit $(ld-name) checks everywhere, but I'm fine with removing
it in v2.

Sami


Re: [PATCH 7/7] arm64: add a workaround for GNU gold with ARM64_MODULE_PLTS

2017-11-30 Thread Ard Biesheuvel
On 29 November 2017 at 23:44, Sami Tolvanen  wrote:
> All current versions of GNU gold crash when linking kernel modules
> with ARM64_MODULE_PLTS due to a known bug:
>
>   https://sourceware.org/bugzilla/show_bug.cgi?id=14592
>
> To work around the problem, this change removes NOLOAD from .plt
> and .init.plt.
>
> Signed-off-by: Sami Tolvanen 

Acked-by: Ard Biesheuvel 

> ---
>  arch/arm64/kernel/module.lds | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm64/kernel/module.lds b/arch/arm64/kernel/module.lds
> index f7c9781a9d48..eacb5c67f61e 100644
> --- a/arch/arm64/kernel/module.lds
> +++ b/arch/arm64/kernel/module.lds
> @@ -1,4 +1,4 @@
>  SECTIONS {
> -   .plt (NOLOAD) : { BYTE(0) }
> -   .init.plt (NOLOAD) : { BYTE(0) }
> +   .plt : { BYTE(0) }
> +   .init.plt : { BYTE(0) }
>  }
> --
> 2.15.0.531.g2ccb3012c9-goog
>


Re: [PATCH 3/7] kbuild: fix LD_DEAD_CODE_DATA_ELIMINATION with GNU gold

2017-11-29 Thread Nicholas Piggin
On Wed, 29 Nov 2017 15:44:38 -0800
Sami Tolvanen  wrote:

> Don't remove .head.text or .exitcall.exit when linking with --gc-sections,
> and include .init.text.* in .init.text and .init.rodata.* in .init.rodata.
> 
> Signed-off-by: Sami Tolvanen 

Fine by me, if you consider my other comments.

Reviewed-by: Nicholas Piggin 


Re: [PATCH 1/7] kbuild: add ld-name macro and support for GNU gold

2017-11-29 Thread Nick Desaulniers
On Wed, Nov 29, 2017 at 3:44 PM, Sami Tolvanen  wrote:
> GNU gold may require different flags than GNU ld. Add a macro for
> detecting the linker and conditionally add gold specific flags from
> LDFLAGS_GOLD.

Right, but you're still only ever using one linker per build, correct?
 Can we get away without 2 distinct flags?

> +# Add any flags specific to ld.gold
> +ifeq ($(ld-name),gold)
> +LDFLAGS+= $(LDFLAGS_GOLD)
> +endif
> +

Patch 1 and 6 have this pattern of always assigning to LDFLAGS_GOLD,
then that to LDFLAGS.  Wouldn't it be better to check the ld-name and
conditionally assign to LDFLAGS? Then LDFLAGS_GOLD is not necessary.
For example, what I'm suggesting is what is done in patch 4.

> +# ld-name
> +# Expands to either bfd or gold
> +ld-name = $(shell $(LD) -v 2>&1 | grep -q "GNU gold" && echo gold || echo 
> bfd)
> +

This part LGTM.


Re: [PATCH 6/7] arm64: explicitly pass --no-fix-cortex-a53-843419 to GNU gold

2017-11-29 Thread Nick Desaulniers
On Wed, Nov 29, 2017 at 3:44 PM, Sami Tolvanen  wrote:
> @@ -26,10 +26,19 @@ ifeq ($(CONFIG_ARM64_ERRATUM_843419),y)
>ifeq ($(call ld-option, --fix-cortex-a53-843419),)
>  $(warning ld does not support --fix-cortex-a53-843419; kernel may be 
> susceptible to erratum)
>else
> +ifeq ($(call gold-ifversion, -lt, 11400, y), y)
> +$(warning This version of GNU gold may generate incorrect code with 
> --fix-cortex-a53-843419;\
> +   see https://sourceware.org/bugzilla/show_bug.cgi?id=21491)
> +endif
>  LDFLAGS_vmlinux+= --fix-cortex-a53-843419
>endif
>  endif
>
> +ifeq ($(CONFIG_ARM64_ERRATUM_843419),)
> +# https://sourceware.org/bugzilla/show_bug.cgi?id=21491
> +LDFLAGS_GOLD   += --no-fix-cortex-a53-843419
> +endif
> +

Rather than:

if CONFIG_ARM64_ERRATUM_843419 == y:
  ...
if CONFIG_ARM64_ERRATUM_843419 == '':
  ...

could this be:

if CONFIG_ARM64_ERRATUM_843419 == y:
  ...
else
  ...

?


[PATCH 4/7] arm64: fix -m for GNU gold

2017-11-29 Thread Sami Tolvanen
GNU gold supports different emulations than bfd. Use aarch64_elf64_*_vec
instead of aarch64linux.

Signed-off-by: Sami Tolvanen 
Acked-by: Yury Norov 
---
 arch/arm64/Makefile | 8 
 1 file changed, 8 insertions(+)

diff --git a/arch/arm64/Makefile b/arch/arm64/Makefile
index b35788c909f1..82a0df6e865e 100644
--- a/arch/arm64/Makefile
+++ b/arch/arm64/Makefile
@@ -64,14 +64,22 @@ KBUILD_CPPFLAGS += -mbig-endian
 CHECKFLAGS += -D__AARCH64EB__
 AS += -EB
 LD += -EB
+ifeq ($(ld-name),gold)
+LDFLAGS+= -maarch64_elf64_be_vec
+else
 LDFLAGS+= -maarch64linuxb
+endif
 UTS_MACHINE:= aarch64_be
 else
 KBUILD_CPPFLAGS+= -mlittle-endian
 CHECKFLAGS += -D__AARCH64EL__
 AS += -EL
 LD += -EL
+ifeq ($(ld-name),gold)
+LDFLAGS+= -maarch64_elf64_le_vec
+else
 LDFLAGS+= -maarch64linux
+endif
 UTS_MACHINE:= aarch64
 endif
 
-- 
2.15.0.531.g2ccb3012c9-goog



  1   2   3   >