[Crash-utility] ARM and X86 eppic.so builds from X86_64 host

Luc Chouinard LChouinard at s2sys.com
Mon Aug 13 20:42:01 UTC 2012


Done.

> -----Original Message-----
> From: Dave Anderson [mailto:anderson at redhat.com]
> Sent: Monday, August 13, 2012 4:38 PM
> To: Discussion list for crash utility usage, maintenance and development
> Cc: Luc Chouinard
> Subject: Re: ARM and X86 eppic.so builds from X86_64 host
> 
> 
> Luc,
> 
> Our emails crossed -- can you also add the -m32 flag for X86 as well?
> 
> Thanks,
>   Dave
> 
> ----- Original Message -----
> >
> >
> > ----- Original Message -----
> > > > ----- Original Message -----
> > > >>
> > > >>
> > > >> ----- Original Message -----
> > > >> > Hi,
> > > >> >
> > > >> > Here's an alternative patch for your consideration, which makes
> > > >> > it possible to point to e.g. a local eppic git.
> > > >> >
> > > >> > It also builds ARM with '-m32'. This change is not enough to
> > > >> > achieve that however. Similar tweaks are needed in eppic
> > > >> > itself.
> > > >> >
> > > >> > Regards,
> > > >> > Per
> > > >>
> > > >> Per,
> > > >>
> > > >> Sorry I got to Cliff's patch before yours -- so can you rework
> > > >> your patch using the version of eppic.mk that is attached to:
> > > >>
> > > >>   Re: [Crash-utility] [PATCH] allow various git command
> > > >>   locations
> > > >>
> > > >> https://www.redhat.com/archives/crash-utility/2012-August/msg0001
> > > >> 2.html
> > > >>
> > > >> Thanks,
> > > >>   Dave
> > > >
> > > > OK, I've shoehorned the EPPIC_GIT_URL environment variable check
> > > > into eppic.mk.
> > > >
> > >
> > > Sorry I took so long. Vacation... =o)
> > >
> > > So, you already put it in there? Thanks.
> > >
> > > > But for now I'm leaving out your -m32 addition for ARM builds
> > > > until there's a complete solution for ARM.  Note that when I put
> > > > the -m32 patch in place, the compile fails when building ARM on an
> > > > x86_64 host:
> > > >
> > > > gcc -g -I.. -Ieppic/libeppic -I../gdb-7.3.1/bfd
> > > > -I../gdb-7.3.1/include -I../gdb-7.3.1/gdb
> > > > -I../gdb-7.3.1/gdb/config -I../gdb-7.3.1/gdb/common
> > > > -I../gdb-7.3.1
> > > > -nostartfiles -shared -rdynamic -o eppic.so
> > > > eppic/applications/crash/eppic.c -fPIC -DARM -m32 -DGDB_7_3_1
> > > > -Leppic/libeppic -leppic
> > > > eppic/applications/crash/eppic.c: In function ‘apigetval’:
> > > > eppic/applications/crash/eppic.c:474: warning: cast from pointer
> > > > to integer of different size
> > > > /usr/bin/ld: skipping incompatible eppic/libeppic/libeppic.a when
> > > > searching for -leppic
> > > > /usr/bin/ld: cannot find -leppic
> > > > collect2: ld returned 1 exit status
> > > > make[4]: [eppic.so] Error 1 (ignored)
> > > >
> > > > whereas without the -m32 at least it builds something (albeit
> > > > probably useless).
> > > >
> > >
> > > I think we might have a catch 22 on our hands. The reason it fails
> > > is that the eppic library doesn't get built with -m32, but if we
> > > start by modifying the eppic git the build will fail because eppic
> > > is 32 bit and the crash extension is 64 bit. I've attached the
> > > change I made to the eppic git.
> > >
> > > /Per
> >
> > OK, that works.  In fact, the same thing needs to be done for building
> > a 32-bit X86 eppic.so from an x86_64 host after having done the intial
> > build with "make target=X86".
> >
> > I'll change eppic.mk (attached) to look like this instead of embedding
> > the ifeq's:
> >
> > TARGET_FLAGS = -D$(TARGET)
> > ifeq ($(TARGET), PPC64)
> >         TARGET_FLAGS += -m64
> > endif
> > ifeq ($(TARGET), ARM)
> >         TARGET_FLAGS += -m32
> > endif
> > ifeq ($(TARGET), X86)
> >         TARGET_FLAGS += -m32
> > endif
> >
> > And for the eppic/libeppic/Makefile, the analogous change should also
> > be done for X86:
> >
> > $ git diff
> > diff --git a/libeppic/Makefile b/libeppic/Makefile index
> > f323eab..3b6d212 100644
> > --- a/libeppic/Makefile
> > +++ b/libeppic/Makefile
> > @@ -28,6 +28,13 @@ CFLAGS += -O0 -g -fPIC  ifeq ($(TARGET), PPC64)
> >         CFLAGS += -m64
> >  endif
> > +ifeq ($(TARGET), ARM)
> > +       CFLAGS += -m32
> > +endif
> > +ifeq ($(TARGET), X86)
> > +       CFLAGS += -m32
> > +endif
> > +
> >
> >  CFILES   = eppic_util.c eppic_node.c eppic_var.c eppic_func.c
> >  eppic_str.c \
> >         eppic_op.c eppic_num.c eppic_stat.c eppic_builtin.c
> >         eppic_type.c \
> > $
> >
> > Luc, can you apply the attached eppic-m32.patch to the eppic git tree?
> >
> > Thanks,
> >   Dave
> >
> >
> >




More information about the Crash-utility mailing list