Re: [PATCH 04/13] kexec: use _ALIGN* to make the logic clear

Simon Horman
2013-03-15T08:35:56Z

On Thu, Mar 14, 2013 at 07:26:18PM +0800, Zhang Yanfei wrote:
> 于 2013年03月14日 17:58, Simon Horman 写道:
> > On Thu, Mar 14, 2013 at 10:49:51AM +0100, Simon Horman wrote:
> >> On Thu, Mar 14, 2013 at 10:08:06AM +0100, Simon Horman wrote:
> >>> On Thu, Mar 14, 2013 at 01:26:56AM +0800, Zhang Yanfei wrote:
> >>>> From: Zhang Yanfei <zhangyanfei@cn.fujitsu.com>
> >>>>
> >>>> By replacing all the explicit align opertions with marco _ALIGN*,
> >>>> the code logic could be more clear.
> >>>
> >>> Not a big deal, but I believe this patch needs to come after
> >>> the arm changes in the series in order to avoid breaking the build
> >>> on that architecture.
> >>
> >> I have applied this as the last patch of this series that I have applied.
> >
> > Actually, I take that back.
> >
> > I am also seeing problems with this patch on ppc.
> > I have dropped this patch for now.
> >
> > powerpc-linux-gnu-ar: creating libutil.a
> > powerpc-linux-gnu-gcc -L/lib -o build/sbin/kexec kexec/kexec.o kexec/ifdown.o kexec/kexec-elf.o kexec/kexec-elf-exec.o kexec/kexec-elf-core.o kexec/kexec-elf-rel.o kexec/kexec-elf-boot.o kexec/kexec-iomem.o kexec/firmware_memmap.o kexec/crashdump.o kexec/crashdump-xen.o kexec/phys_arch.o kexec/kernel_version.o kexec/lzma.o kexec/zlib.o kexec/proc_iomem.o kexec/virt_to_phys.o kexec/phys_to_virt.o kexec/add_segment.o kexec/add_buffer.o kexec/kexec-uImage.o kexec/arch/ppc/kexec-ppc.o kexec/arch/ppc/kexec-elf-ppc.o kexec/arch/ppc/kexec-elf-rel-ppc.o kexec/arch/ppc/kexec-dol-ppc.o kexec/arch/ppc/kexec-uImage-ppc.o kexec/arch/ppc/ppc-setup-simple.o kexec/arch/ppc/ppc-setup-dol.o kexec/arch/ppc/fixup_dtb.o kexec/arch/ppc/fs2dt.o kexec/arch/ppc/crashdump-powerpc.o kexec/libfdt/fdt.o kexec/libfdt/fdt_ro.o kexec/libfdt/fdt_wip.o kexec/libfdt/fdt_sw.o kexec/libfdt/fdt_rw.o kexec/libfdt/fdt_strerror.o kexec/arch/ppc/libfdt-wrapper.o kexec/purgatory.o libutil.a -Wall -Wextra -Wpointer-arith -Ww
> rite-strings -Wformat -O2 -fomit-frame-pointer -pipe -fno-strict-aliasing -Wall -Wstrict-prototypes
> > kexec/libfdt/fdt.o: In function `fdt_next_tag':
> > fdt.c:(.text+0x304): undefined reference to `_ALIGN'
> > kexec/libfdt/fdt_sw.o: In function `fdt_begin_node':
> > fdt_sw.c:(.text+0x4f4): undefined reference to `_ALIGN'
> > kexec/libfdt/fdt_sw.o: In function `fdt_property':
> > fdt_sw.c:(.text+0x648): undefined reference to `_ALIGN'
> > kexec/libfdt/fdt_sw.o: In function `fdt_create':
> > fdt_sw.c:(.text+0x744): undefined reference to `_ALIGN'
> > kexec/libfdt/fdt_rw.o: In function `_fdt_blocks_misordered':
> > fdt_rw.c:(.text+0x40): undefined reference to `_ALIGN'
> > kexec/libfdt/fdt_rw.o:fdt_rw.c:(.text+0x19c): more undefined references to `_ALIGN' follow
> > collect2: ld returned 1 exit status
>
> Hi simon,
>
> Could you try the v2, please?

Unfortunately I am still seeing the same problem with v2.

What I suggest is that we drop the kexec/libfdt/libfdt_internal.h portion
of the patch entirely. With that version in place I can compile the code
cleanly for all supported architectures.

If you are ok with this change could you please send it as v3?