[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Build error with clang 4.0
From: |
Andrei Borzenkov |
Subject: |
Re: Build error with clang 4.0 |
Date: |
Fri, 30 Dec 2016 18:44:13 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.5.1 |
27.12.2016 18:10, Paul Menzel пишет:
> Dear GRUB folks,
>
>
> Using Clang 4.0 the build fails with the error below.
>
> ```
> $ sudo apt install clang-4.0 # Debian Sid/unstable
> $ clang-4.0 --version
> clang version 4.0.0-svn286225-1 (trunk)
> Target: i686-pc-linux-gnu
> Thread model: posix
> InstalledDir: /usr/bin
> $ git log --oneline -1
> ce95549cc efi: properly terminate filepath with NULL in chainloader
> $ ./autoconf.sh
> $ CC=clang-4.0 ../grub/configure --with-platform=coreboot --enable-boot-time
> $ make -j
> […]
> ../grub/grub-core/fs/hfs.c:699:10: error: taking address of packed member
> 'catalog_recs' of class or structure 'grub_hfs_sblock' may result in an
> unaligned pointer
> value [-Werror,-Waddress-of-packed-member]
> ? (&data->sblock.catalog_recs)
> ^~~~~~~~~~~~~~~~~~~~~~~~~
> ../grub/grub-core/fs/hfs.c:700:10: error: taking address of packed member
> 'extent_recs' of class or structure 'grub_hfs_sblock' may result in an
> unaligned pointer
> value [-Werror,-Waddress-of-packed-member]
> : (&data->sblock.extent_recs));
> ^~~~~~~~~~~~~~~~~~~~~~~~
> […]
> ```
>
> The build succeeds using gcc (Debian 6.2.1-7) 6.2.1 20161215, so I am
> unsure if this is a Clang issue.
>
I remember having seen it with LLVM/clang development snapshot before
but got distracted. But currently I cannot reproduce it using LLVM/clang
git as of yesterday, even if I explicitly add -Waddress-of-packed-member
to compile options. May be I miss some steps.
Regarding issue itself - we should not have alignment problem here, at
least on known platforms. Structure elements are properly aligned inside
of structure and structure itself is at the beginning of malloc returned
memory.
I was about to change prototype to (void *) then as I mentioned forgot
about it (or, better, issue did not happen in released clang so I did
not want to add workarounds for development snapshot).
It would be helpful if you could check when issue disappeared (if it
did). Unfortunately, full LLVM/clang build takes half a day on my system
and tears HDD apart :(
signature.asc
Description: OpenPGP digital signature