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

Dave Anderson anderson at redhat.com
Mon Aug 13 20:36:39 UTC 2012



----- 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/msg00012.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
 

-------------- next part --------------
A non-text attachment was scrubbed...
Name: eppic.mk
Type: application/octet-stream
Size: 2304 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20120813/4e71cb73/attachment.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: eppic-m32.patch
Type: text/x-patch
Size: 464 bytes
Desc: not available
URL: <http://listman.redhat.com/archives/crash-utility/attachments/20120813/4e71cb73/attachment.bin>


More information about the Crash-utility mailing list