grub-devel
[Top][All Lists]
Advanced

[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 :(

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]