* Build failure on ppc64le
@ 2017-07-01 12:41 Paul Menzel
2017-07-04 17:47 ` Leif Lindholm
0 siblings, 1 reply; 3+ messages in thread
From: Paul Menzel @ 2017-07-01 12:41 UTC (permalink / raw)
To: grub-devel
[-- Attachment #1: Type: text/plain, Size: 2839 bytes --]
Dear GRUB folks,
Building GRUB at commit 7346682 (Allow GRUB to mount ext2/3/4
filesystems that have the encryption feature.) for the platform
`powerpc-ieee1275` with Ubuntu 16.04.02 LTS (Xenial Xerus) on such a
machine (ppc64le), fails with the error below.
```
$ ./autogen.sh
$ ./configure
$ make
[…]
gcc -Os -Wall -W -Wshadow -Wpointer-arith -Wundef -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-braces -Wmissing-format-attribute -Wmultichar -Wparentheses -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wswitch -Wtrigraphs -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings -Wnested-externs -Wstrict-prototypes -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations -Wcast-align -Wextra -Wattributes -Wendif-labels -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmissing-field-initializers -Wnonnull -Woverflow -Wvla -Wpointer-to-int-cast -Wstrict-aliasing -Wvariadic-macros -Wvolatile-register-var -Wpointer-sign -Wmissing-include-dirs -Wmissing-prototypes -Wmissing-declarations -Wformat=2 -mbig-endian -m32 -freg-struct-return -msoft-float -fno-dwarf2-cfi-asm -fno-asynchronous-unwind-tables -fno-unwind-tables -Qn -fno-stack-protector -Wtrampolines -Werror -mcpu=powerpc -ffreestanding -mbig-endian -m32 -Wl,--build-id=none -nostdlib -Wl,-N -Wl,-Ttext,0x200000 -o kernel.exec kern/powerpc/ieee1275/kernel_exec-startup.o kern/powerpc/kernel_exec-cache.o kern/powerpc/kernel_exec-dl.o kern/powerpc/kernel_exec-compiler-rt.o disk/ieee1275/kernel_exec-ofdisk.o kern/ieee1275/kernel_exec-cmain.o kern/ieee1275/kernel_exec-ieee1275.o kern/ieee1275/kernel_exec-mmap.o kern/ieee1275/kernel_exec-openfw.o term/ieee1275/kernel_exec-console.o kern/ieee1275/kernel_exec-init.o term/kernel_exec-terminfo.o term/kernel_exec-tparm.o commands/kernel_exec-extcmd.o lib/kernel_exec-arg.o kern/kernel_exec-compiler-rt.o kern/kernel_exec-mm.o kern/kernel_exec-time.o kern/generic/kernel_exec-millisleep.o kern/kernel_exec-command.o kern/kernel_exec-corecmd.o kern/kernel_exec-device.o kern/kernel_exec-disk.o kern/kernel_exec-dl.o kern/kernel_exec-env.o kern/kernel_exec-err.o kern/kernel_exec-file.o kern/kernel_exec-fs.o kern/kernel_exec-list.o kern/kernel_exec-main.o kern/kernel_exec-misc.o kern/kernel_exec-parser.o kern/kernel_exec-partition.o kern/kernel_exec-rescue_parser.o kern/kernel_exec-rescue_reader.o kern/kernel_exec-term.o kernel_exec-symlist.o
kernel_exec-symlist.o:(.data+0x214): undefined reference to `grub_arch_sync_dma_caches'
collect2: error: ld returned 1 exit status
[…]
```
Thanks,
Paul
[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: Build failure on ppc64le
2017-07-01 12:41 Build failure on ppc64le Paul Menzel
@ 2017-07-04 17:47 ` Leif Lindholm
2017-07-05 23:38 ` Vladimir 'phcoder' Serbinenko
0 siblings, 1 reply; 3+ messages in thread
From: Leif Lindholm @ 2017-07-04 17:47 UTC (permalink / raw)
To: The development of GNU GRUB; +Cc: Paul Menzel
On Sat, Jul 01, 2017 at 02:41:05PM +0200, Paul Menzel wrote:
> Dear GRUB folks,
>
> Building GRUB at commit 7346682 (Allow GRUB to mount ext2/3/4
> filesystems that have the encryption feature.) for the platform
> `powerpc-ieee1275` with Ubuntu 16.04.02 LTS (Xenial Xerus) on such a
> machine (ppc64le), fails with the error below.
>
> ```
> $ ./autogen.sh
> $ ./configure
> $ make
> […]
> gcc -Os -Wall -W -Wshadow -Wpointer-arith -Wundef -Wchar-subscripts -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-braces -Wmissing-format-attribute -Wmultichar -Wparentheses -Wreturn-type -Wsequence-point -Wshadow -Wsign-compare -Wswitch -Wtrigraphs -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings -Wnested-externs -Wstrict-prototypes -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations -Wcast-align -Wextra -Wattributes -Wendif-labels -Winit-self -Wint-to-pointer-cast -Winvalid-pch -Wmissing-field-initializers -Wnonnull -Woverflow -Wvla -Wpointer-to-int-cast -Wstrict-aliasing -Wvariadic-macros -Wvolatile-register-var -Wpointer-sign -Wmissing-include-dirs -Wmissing-prototypes -Wmissing-declarations -Wformat=2 -mbig-endian -m32 -freg-struct-return -msoft-float -fno-dwarf2-cfi-asm -fno-asynchronous-unwind-tables -fno-unwind-tables -Qn -fno-stack-protector -Wtrampolines -Werror -mcpu=powerpc -ffreestanding -mbig-endian -m32 -Wl,--build-id=none -nostdlib -Wl,-N -Wl,-Ttext,0x200000 -o kernel.exec kern/powerpc/ieee1275/kernel_exec-startup.o kern/powerpc/kernel_exec-cache.o kern/powerpc/kernel_exec-dl.o kern/powerpc/kernel_exec-compiler-rt.o disk/ieee1275/kernel_exec-ofdisk.o kern/ieee1275/kernel_exec-cmain.o kern/ieee1275/kernel_exec-ieee1275.o kern/ieee1275/kernel_exec-mmap.o kern/ieee1275/kernel_exec-openfw.o term/ieee1275/kernel_exec-console.o kern/ieee1275/kernel_exec-init.o term/kernel_exec-terminfo.o term/kernel_exec-tparm.o commands/kernel_exec-extcmd.o lib/kernel_exec-arg.o kern/kernel_exec-compiler-rt.o kern/kernel_exec-mm.o kern/kernel_exec-time.o kern/generic/kernel_exec-millisleep.o kern/kernel_exec-command.o kern/kernel_exec-corecmd.o kern/kernel_exec-device.o kern/kernel_exec-disk.o kern/kernel_exec-dl.o kern/kernel_exec-env.o kern/kernel_exec-err.o kern/kernel_exec-file.o kern/kernel_exec-fs.o kern/kernel_exec-list.o kern/kernel_exec-main.o kern/kernel_exec-misc.o kern/kernel_exec-parser.o kern/kernel_exec-partition.o kern/kernel_exec-rescue_parser.o kern/kernel_exec-rescue_reader.o kern/kernel_exec-term.o kernel_exec-symlist.o
> kernel_exec-symlist.o:(.data+0x214): undefined reference to `grub_arch_sync_dma_caches'
> collect2: error: ld returned 1 exit status
> […]
> ```
Yeah, this is related to the same change that broke arm64:
http://lists.gnu.org/archive/html/grub-devel/2017-05/msg00043.html
If ppc64le does not require any manual DMA cache synchronization,
you could probably just add something like:
diff --git a/include/grub/cache.h b/include/grub/cache.h
index 1c98ce270..c99316e09 100644
--- a/include/grub/cache.h
+++ b/include/grub/cache.h
@@ -34,7 +34,8 @@ void EXPORT_FUNC(grub_arch_sync_caches) (void
*address, grub_size_t len);
#endif
#ifndef GRUB_MACHINE_EMU
-#if defined (__i386__) || defined (__x86_64__)
+#if defined (__i386__) || defined (__x86_64__) || (defined (__PPC64__) && \
+ defined (__LITTLE_ENDIAN__))
static inline void
grub_arch_sync_dma_caches (volatile void *address __attribute__ ((unused)),
grub_size_t len __attribute__ ((unused)))
/
Leif
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: Build failure on ppc64le
2017-07-04 17:47 ` Leif Lindholm
@ 2017-07-05 23:38 ` Vladimir 'phcoder' Serbinenko
0 siblings, 0 replies; 3+ messages in thread
From: Vladimir 'phcoder' Serbinenko @ 2017-07-05 23:38 UTC (permalink / raw)
To: The development of GNU GRUB
[-- Attachment #1: Type: text/plain, Size: 4353 bytes --]
On Tue, Jul 4, 2017, 19:48 Leif Lindholm <leif.lindholm@linaro.org> wrote:
> On Sat, Jul 01, 2017 at 02:41:05PM +0200, Paul Menzel wrote:
> > Dear GRUB folks,
> >
> > Building GRUB at commit 7346682 (Allow GRUB to mount ext2/3/4
> > filesystems that have the encryption feature.) for the platform
> > `powerpc-ieee1275` with Ubuntu 16.04.02 LTS (Xenial Xerus) on such a
> > machine (ppc64le), fails with the error below.
> >
> > ```
> > $ ./autogen.sh
> > $ ./configure
> > $ make
> > […]
> > gcc -Os -Wall -W -Wshadow -Wpointer-arith -Wundef -Wchar-subscripts
> -Wcomment -Wdeprecated-declarations -Wdisabled-optimization -Wdiv-by-zero
> -Wfloat-equal -Wformat-extra-args -Wformat-security -Wformat-y2k -Wimplicit
> -Wimplicit-function-declaration -Wimplicit-int -Wmain -Wmissing-braces
> -Wmissing-format-attribute -Wmultichar -Wparentheses -Wreturn-type
> -Wsequence-point -Wshadow -Wsign-compare -Wswitch -Wtrigraphs
> -Wunknown-pragmas -Wunused -Wunused-function -Wunused-label
> -Wunused-parameter -Wunused-value -Wunused-variable -Wwrite-strings
> -Wnested-externs -Wstrict-prototypes -g -Wredundant-decls
> -Wmissing-prototypes -Wmissing-declarations -Wcast-align -Wextra
> -Wattributes -Wendif-labels -Winit-self -Wint-to-pointer-cast -Winvalid-pch
> -Wmissing-field-initializers -Wnonnull -Woverflow -Wvla
> -Wpointer-to-int-cast -Wstrict-aliasing -Wvariadic-macros
> -Wvolatile-register-var -Wpointer-sign -Wmissing-include-dirs
> -Wmissing-prototypes -Wmissing-declarations -Wformat=2 -mbig-endian -m32
> -freg-struct-return -msoft-float -fno-dwarf2-cfi-asm
> -fno-asynchronous-unwind-tables -fno-unwind-tables -Qn -fno-stack-protector
> -Wtrampolines -Werror -mcpu=powerpc -ffreestanding -mbig-endian -m32
> -Wl,--build-id=none -nostdlib -Wl,-N -Wl,-Ttext,0x200000 -o kernel.exec
> kern/powerpc/ieee1275/kernel_exec-startup.o
> kern/powerpc/kernel_exec-cache.o kern/powerpc/kernel_exec-dl.o
> kern/powerpc/kernel_exec-compiler-rt.o disk/ieee1275/kernel_exec-ofdisk.o
> kern/ieee1275/kernel_exec-cmain.o kern/ieee1275/kernel_exec-ieee1275.o
> kern/ieee1275/kernel_exec-mmap.o kern/ieee1275/kernel_exec-openfw.o
> term/ieee1275/kernel_exec-console.o kern/ieee1275/kernel_exec-init.o
> term/kernel_exec-terminfo.o term/kernel_exec-tparm.o
> commands/kernel_exec-extcmd.o lib/kernel_exec-arg.o
> kern/kernel_exec-compiler-rt.o kern/kernel_exec-mm.o
> kern/kernel_exec-time.o kern/generic/kernel_exec-millisleep.o
> kern/kernel_exec-command.o kern/kernel_exec-corecmd.o
> kern/kernel_exec-device.o kern/kernel_exec-disk.o kern/kernel_exec-dl.o
> kern/kernel_exec-env.o kern/kernel_exec-err.o kern/kernel_exec-file.o
> kern/kernel_exec-fs.o kern/kernel_exec-list.o kern/kernel_exec-main.o
> kern/kernel_exec-misc.o kern/kernel_exec-parser.o
> kern/kernel_exec-partition.o kern/kernel_exec-rescue_parser.o
> kern/kernel_exec-rescue_reader.o kern/kernel_exec-term.o
> kernel_exec-symlist.o
> > kernel_exec-symlist.o:(.data+0x214): undefined reference to
> `grub_arch_sync_dma_caches'
> > collect2: error: ld returned 1 exit status
> > […]
> > ```
>
> Yeah, this is related to the same change that broke arm64:
> http://lists.gnu.org/archive/html/grub-devel/2017-05/msg00043.html
>
> If ppc64le does not require any manual DMA cache synchronization,
> you could probably just add something like:
>
> diff --git a/include/grub/cache.h b/include/grub/cache.h
> index 1c98ce270..c99316e09 100644
> --- a/include/grub/cache.h
> +++ b/include/grub/cache.h
> @@ -34,7 +34,8 @@ void EXPORT_FUNC(grub_arch_sync_caches) (void
> *address, grub_size_t len);
> #endif
>
> #ifndef GRUB_MACHINE_EMU
> -#if defined (__i386__) || defined (__x86_64__)
> +#if defined (__i386__) || defined (__x86_64__) || (defined (__PPC64__)
> && \
> + defined (__LITTLE_ENDIAN__))
>
Grub core isn't built for ppc64le but ppc. So it needs to be __ppc__. But
better solution is not to attempt to export unused function
> static inline void
> grub_arch_sync_dma_caches (volatile void *address __attribute__
> ((unused)),
> grub_size_t len __attribute__ ((unused)))
>
> /
> Leif
>
> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> https://lists.gnu.org/mailman/listinfo/grub-devel
>
[-- Attachment #2: Type: text/html, Size: 5088 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2017-07-05 23:38 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-07-01 12:41 Build failure on ppc64le Paul Menzel
2017-07-04 17:47 ` Leif Lindholm
2017-07-05 23:38 ` Vladimir 'phcoder' Serbinenko
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.