Messages in this thread Patch in this message | | | From | Atish Patra <> | Date | Thu, 28 Jan 2021 12:07:35 -0800 | Subject | Re: Kconfig-induced build errors: CONFIG_PAGE_OFFSET |
| |
On Wed, Jan 27, 2021 at 7:18 PM Randy Dunlap <rdunlap@infradead.org> wrote: > > Hi, > > I took a riscv-32 .config from kernel test robot (it was for a clang build) > and did a "make olddefconfig" (using gcc tools) and got build errors > due to this config item from arch/riscv/Kconfig; > > > config PAGE_OFFSET > hex > default 0xC0000000 if 32BIT && MAXPHYSMEM_1GB > default 0x80000000 if 64BIT && !MMU > default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB > default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB > > PAGE_OFFSET is undefined for the case of 32BIT && MAXPHYSMEM_2GB.
Because, RV32 doesn't support 2GB physical memory yet.
The compilation errors can be fixed by not allowing MAXPHYSMEM_2GB for RV32 and MAXPHYSMEM_1GB for RV64. How about this ?
--- a/arch/riscv/Kconfig +++ b/arch/riscv/Kconfig @@ -253,8 +253,10 @@ choice default MAXPHYSMEM_128GB if 64BIT && CMODEL_MEDANY
config MAXPHYSMEM_1GB + depends on 32BIT bool "1GiB" config MAXPHYSMEM_2GB + depends on 64BIT && CMODEL_MEDLOW bool "2GiB" config MAXPHYSMEM_128GB depends on 64BIT && CMODEL_MEDANY
> That causes lots of errors when _AC() is used to paste > CONFIG_PAGE_OFFSET to "UL", like these: > > In file included from ../include/vdso/const.h:5, > from ../include/linux/const.h:4, > from ../include/linux/bits.h:5, > from ../include/linux/bitops.h:6, > from ../include/linux/kernel.h:11, > from ../init/do_mounts_initrd.c:3: > ../arch/riscv/include/asm/uaccess.h: In function '__access_ok': > ../arch/riscv/include/asm/page.h:34:46: error: 'UL' undeclared (first use in this function) > 34 | #define PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL) > | ^~ > ../include/uapi/linux/const.h:20:23: note: in definition of macro '__AC' > 20 | #define __AC(X,Y) (X##Y) > | ^ > ../arch/riscv/include/asm/page.h:34:22: note: in expansion of macro '_AC' > 34 | #define PAGE_OFFSET _AC(CONFIG_PAGE_OFFSET, UL) > | ^~~ > ../arch/riscv/include/asm/pgtable.h:26:27: note: in expansion of macro 'PAGE_OFFSET' > 26 | #define VMALLOC_START (PAGE_OFFSET - VMALLOC_SIZE) > | ^~~~~~~~~~~ > ../arch/riscv/include/asm/pgtable.h:41:24: note: in expansion of macro 'VMALLOC_START' > 41 | #define VMEMMAP_START (VMALLOC_START - VMEMMAP_SIZE) > | ^~~~~~~~~~~~~ > ../arch/riscv/include/asm/pgtable.h:50:26: note: in expansion of macro 'VMEMMAP_START' > 50 | #define PCI_IO_END VMEMMAP_START > | ^~~~~~~~~~~~~ > ../arch/riscv/include/asm/pgtable.h:51:27: note: in expansion of macro 'PCI_IO_END' > 51 | #define PCI_IO_START (PCI_IO_END - PCI_IO_SIZE) > | ^~~~~~~~~~ > ../arch/riscv/include/asm/pgtable.h:53:26: note: in expansion of macro 'PCI_IO_START' > 53 | #define FIXADDR_TOP PCI_IO_START > | ^~~~~~~~~~~~ > ../arch/riscv/include/asm/pgtable.h:59:27: note: in expansion of macro 'FIXADDR_TOP' > 59 | #define FIXADDR_START (FIXADDR_TOP - FIXADDR_SIZE) > | ^~~~~~~~~~~ > ../arch/riscv/include/asm/pgtable.h:471:19: note: in expansion of macro 'FIXADDR_START' > 471 | #define TASK_SIZE FIXADDR_START > | ^~~~~~~~~~~~~ > ../arch/riscv/include/asm/uaccess.h:56:17: note: in expansion of macro 'TASK_SIZE' > 56 | return size <= TASK_SIZE && addr <= TASK_SIZE - size; > > > I suppose that it wants something like this, but someone else can > fix/use the correct default value here: > > --- > > From: Randy Dunlap <rdunlap@infradead.org> > > Provide a default value for PAGE_OFFSET for the case of > 32BIT and MAXPHYSMEM_2GB. > > Fixes many build errors. > > Signed-off-by: Randy Dunlap <rdunlap@infradead.org> > --- > arch/riscv/Kconfig | 1 + > 1 file changed, 1 insertion(+) > > --- linux-next-20210125.orig/arch/riscv/Kconfig > +++ linux-next-20210125/arch/riscv/Kconfig > @@ -143,6 +143,7 @@ config PA_BITS > config PAGE_OFFSET > hex > default 0xC0000000 if 32BIT && MAXPHYSMEM_1GB > + default 0x80000000 if 32BIT && MAXPHYSMEM_2GB > default 0x80000000 if 64BIT && !MMU > default 0xffffffff80000000 if 64BIT && MAXPHYSMEM_2GB > default 0xffffffe000000000 if 64BIT && MAXPHYSMEM_128GB > > > > -- > ~Randy > Reported-by: Randy Dunlap <rdunlap@infradead.org> > > > _______________________________________________ > linux-riscv mailing list > linux-riscv@lists.infradead.org > http://lists.infradead.org/mailman/listinfo/linux-riscv
-- Regards, Atish
| |