From: Randy Dunlap <rdunlap@infradead.org>
To: Christophe Leroy <christophe.leroy@csgroup.eu>,
kernel test robot <lkp@intel.com>
Cc: PowerPC <linuxppc-dev@lists.ozlabs.org>,
kbuild-all@lists.01.org, linux-kernel@vger.kernel.org
Subject: Re: mmu.c:undefined reference to `patch__hash_page_A0'
Date: Sun, 18 Apr 2021 10:15:02 -0700 [thread overview]
Message-ID: <0a301d17-136c-df65-17cc-3c9ddbe06de8@infradead.org> (raw)
In-Reply-To: <ab9d4f9e-add6-900b-9fa7-83d5f7d1108b@csgroup.eu>
On 4/18/21 3:43 AM, Christophe Leroy wrote:
>
>
> Le 18/04/2021 à 02:02, Randy Dunlap a écrit :
>> HI--
>>
>> I no longer see this build error.
>
> Fixed by https://github.com/torvalds/linux/commit/acdad8fb4a1574323db88f98a38b630691574e16
>
>> However:
>>
>> On 2/27/21 2:24 AM, kernel test robot wrote:
>>> tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
>>> head: 3fb6d0e00efc958d01c2f109c8453033a2d96796
>>> commit: 259149cf7c3c6195e6199e045ca988c31d081cab powerpc/32s: Only build hash code when CONFIG_PPC_BOOK3S_604 is selected
>>> date: 4 weeks ago
>>> config: powerpc64-randconfig-r013-20210227 (attached as .config)
>>
>> ktr/lkp, this is a PPC32 .config file that is attached, not PPC64.
>>
>> Also:
>>
>>> compiler: powerpc-linux-gcc (GCC) 9.3.0
>
> ...
>
>>
>> I do see this build error:
>>
>> powerpc-linux-ld: arch/powerpc/boot/wrapper.a(decompress.o): in function `partial_decompress':
>> decompress.c:(.text+0x1f0): undefined reference to `__decompress'
>>
>> when either
>> CONFIG_KERNEL_LZO=y
>> or
>> CONFIG_KERNEL_LZMA=y
>>
>> but the build succeeds when either
>> CONFIG_KERNEL_GZIP=y
>> or
>> CONFIG_KERNEL_XZ=y
>>
>> I guess that is due to arch/powerpc/boot/decompress.c doing this:
>>
>> #ifdef CONFIG_KERNEL_GZIP
>> # include "decompress_inflate.c"
>> #endif
>>
>> #ifdef CONFIG_KERNEL_XZ
>> # include "xz_config.h"
>> # include "../../../lib/decompress_unxz.c"
>> #endif
>>
>>
>> It would be nice to require one of KERNEL_GZIP or KERNEL_XZ
>> to be set/enabled (maybe unless a uImage is being built?).
>
>
> Can you test by https://patchwork.ozlabs.org/project/linuxppc-dev/patch/a74fce4dfc9fa32da6ce3470bbedcecf795de1ec.1591189069.git.christophe.leroy@csgroup.eu/ ?
Hi Christophe,
I get build errors for both LZO and LZMA:
for CONFIG_KERNEL_LZO=y:
In file included from ../lib/decompress_unlzo.c:26:
../include/linux/lzo.h:24:48: error: unknown type name 'size_t'
24 | int lzo1x_1_compress(const unsigned char *src, size_t src_len,
| ^~~~~~
../include/linux/lzo.h:1:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
+++ |+#include <stddef.h>
1 | /* SPDX-License-Identifier: GPL-2.0 */
../include/linux/lzo.h:25:28: error: unknown type name 'size_t'
25 | unsigned char *dst, size_t *dst_len, void *wrkmem);
| ^~~~~~
../include/linux/lzo.h:25:28: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
../include/linux/lzo.h:28:51: error: unknown type name 'size_t'
28 | int lzorle1x_1_compress(const unsigned char *src, size_t src_len,
| ^~~~~~
../include/linux/lzo.h:28:51: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
../include/linux/lzo.h:29:28: error: unknown type name 'size_t'
29 | unsigned char *dst, size_t *dst_len, void *wrkmem);
| ^~~~~~
../include/linux/lzo.h:29:28: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
../include/linux/lzo.h:32:53: error: unknown type name 'size_t'
32 | int lzo1x_decompress_safe(const unsigned char *src, size_t src_len,
| ^~~~~~
../include/linux/lzo.h:32:53: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
../include/linux/lzo.h:33:26: error: unknown type name 'size_t'
33 | unsigned char *dst, size_t *dst_len);
| ^~~~~~
../include/linux/lzo.h:33:26: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
CC drivers/char/tpm/tpm2-space.o
CC [M] drivers/regulator/da9121-regulator.o
AR drivers/iommu/built-in.a
../lib/decompress_unlzo.c: In function 'unlzo':
../lib/decompress_unlzo.c:237:8: error: implicit declaration of function 'lzo1x_decompress_safe' [-Werror=implicit-function-declaration]
237 | r = lzo1x_decompress_safe((u8 *) in_buf, src_len,
| ^~~~~~~~~~~~~~~~~~~~~
In file included from ../arch/powerpc/boot/ops.h:15,
from ../arch/powerpc/boot/decompress.c:12:
../arch/powerpc/boot/types.h:50:15: error: expected identifier before numeric constant
50 | #define false 0
| ^
../include/linux/stddef.h:11:2: note: in expansion of macro 'false'
11 | false = 0,
| ^~~~~
In file included from ../include/linux/kasan-checks.h:5,
from ../include/asm-generic/rwonce.h:26,
from ./arch/powerpc/include/generated/asm/rwonce.h:1,
from ../include/linux/compiler.h:248,
from ../arch/powerpc/boot/../../../lib/decompress_unlzo.c:32,
from ../arch/powerpc/boot/decompress.c:43:
../include/linux/types.h:30:17: error: conflicting types for 'bool'
30 | typedef _Bool bool;
| ^~~~
In file included from ../arch/powerpc/boot/ops.h:15,
from ../arch/powerpc/boot/decompress.c:12:
../arch/powerpc/boot/types.h:43:13: note: previous declaration of 'bool' was here
43 | typedef int bool;
| ^~~~
In file included from ./arch/powerpc/include/generated/asm/rwonce.h:1,
from ../include/linux/compiler.h:248,
from ../arch/powerpc/boot/../../../lib/decompress_unlzo.c:32,
from ../arch/powerpc/boot/decompress.c:43:
../include/asm-generic/rwonce.h:64:31: error: expected ';' before 'unsigned'
64 | static __no_sanitize_or_inline
| ^
| ;
65 | unsigned long __read_once_word_nocheck(const void *addr)
| ~~~~~~~~
../include/asm-generic/rwonce.h:82:28: error: expected ';' before 'unsigned'
82 | static __no_kasan_or_inline
| ^
| ;
83 | unsigned long read_word_at_a_time(const void *addr)
| ~~~~~~~~
In file included from ../arch/powerpc/boot/decompress.c:43:
../arch/powerpc/boot/../../../lib/decompress_unlzo.c: In function 'parse_header':
../arch/powerpc/boot/../../../lib/decompress_unlzo.c:48:5: warning: variable 'level' set but not used [-Wunused-but-set-variable]
48 | u8 level = 0;
| ^~~~~
and for CONFIG_KERNEL_LZMA=y:
(this looks odd to me since it says "unlzo", but I repeated it
after a 'make clean' and got the same errors.)
In file included from ../lib/decompress_unlzo.c:26:
../include/linux/lzo.h:24:48: error: unknown type name 'size_t'
24 | int lzo1x_1_compress(const unsigned char *src, size_t src_len,
| ^~~~~~
../include/linux/lzo.h:1:1: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
+++ |+#include <stddef.h>
1 | /* SPDX-License-Identifier: GPL-2.0 */
../include/linux/lzo.h:25:28: error: unknown type name 'size_t'
25 | unsigned char *dst, size_t *dst_len, void *wrkmem);
| ^~~~~~
../include/linux/lzo.h:25:28: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
../include/linux/lzo.h:28:51: error: unknown type name 'size_t'
28 | int lzorle1x_1_compress(const unsigned char *src, size_t src_len,
| ^~~~~~
../include/linux/lzo.h:28:51: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
../include/linux/lzo.h:29:28: error: unknown type name 'size_t'
29 | unsigned char *dst, size_t *dst_len, void *wrkmem);
| ^~~~~~
../include/linux/lzo.h:29:28: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
../include/linux/lzo.h:32:53: error: unknown type name 'size_t'
32 | int lzo1x_decompress_safe(const unsigned char *src, size_t src_len,
| ^~~~~~
../include/linux/lzo.h:32:53: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
../include/linux/lzo.h:33:26: error: unknown type name 'size_t'
33 | unsigned char *dst, size_t *dst_len);
| ^~~~~~
../include/linux/lzo.h:33:26: note: 'size_t' is defined in header '<stddef.h>'; did you forget to '#include <stddef.h>'?
../lib/decompress_unlzo.c: In function 'unlzo':
../lib/decompress_unlzo.c:237:8: error: implicit declaration of function 'lzo1x_decompress_safe' [-Werror=implicit-function-declaration]
237 | r = lzo1x_decompress_safe((u8 *) in_buf, src_len,
| ^~~~~~~~~~~~~~~~~~~~~
--
~Randy
next prev parent reply other threads:[~2021-04-18 17:15 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <202102271820.WlZCxtzY-lkp@intel.com>
2021-04-18 0:02 ` mmu.c:undefined reference to `patch__hash_page_A0' Randy Dunlap
2021-04-18 10:43 ` Christophe Leroy
2021-04-18 17:15 ` Randy Dunlap [this message]
2021-04-18 18:35 ` Christophe Leroy
2021-04-21 8:43 ` Christophe Leroy
2021-04-22 2:16 ` Randy Dunlap
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=0a301d17-136c-df65-17cc-3c9ddbe06de8@infradead.org \
--to=rdunlap@infradead.org \
--cc=christophe.leroy@csgroup.eu \
--cc=kbuild-all@lists.01.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lkp@intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).