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 at 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?