On Fri, Mar 20, 2026 at 10:10 PM Luc Park-Chouinard <lucchouina(a)gmail.com>
wrote:
Mkbaseop needs to be compiled for the host (so gcc NOT CC).
I thought I saw support for that in Petr's patch.
"Do not hard-code to gcc except for mkbaseop.c"
Ah, sorry about that; I was wrong. I forgot to update the eppic repo
locally.
After updating the eppic code, the current patch works now. So: Ack
Thanks
Lianbo
On Thu, Mar 19, 2026 at 8:06 PM lijiang <lijiang(a)redhat.com> wrote:
> Hi, Petr
> Thank you for the patch.
>
> On Wed, Mar 18, 2026 at 11:36 AM <
> devel-request(a)lists.crash-utility.osci.io> wrote:
>
>> Date: Thu, 12 Mar 2026 21:17:22 +0100
>> From: Petr Tesařík <petr(a)tesarici.cz> (by way of Petr Tesařík
>> <petr(a)tesarici.cz>)
>> Subject: [Crash-utility] [PATCH 1/1] Fix cross-compilation of eppic.so
>> and snapper.so
>> To: devel(a)lists.crash-utility.osci.io
>> Cc: Jianyun Gao <jianyungao89(a)gmail.com>
>> Message-ID: <20260312211722.4cab3d5a(a)meshulam.tesarici.cz>
>> Content-Type: text/plain; charset=US-ASCII
>>
>> When cross-compiling, the extension modules must be built for the
>> target architecture, not the host architecture.
>>
>> Do not hard-code "gcc" (which is usually the host compiler), but
>> use $(CC) to pick the right compiler.
>>
>> I got an error after applying the current patch:
>
> $ make CROSS_COMPILE=aarch64-linux-gnu- extensions
> aarch64-linux-gnu-gcc -Wall -g -shared -rdynamic -o dminfo.so dminfo.c
> -fPIC -DARM64 -DGDB_16_2
> aarch64-linux-gnu-gcc -Wall -g -shared -rdynamic -o echo.so echo.c -fPIC
> -DARM64 -DGDB_16_2
> cd eppic/libeppic && make
> bison -peppic -v -t -d eppic.y
> eppic.y: warning: 135 shift/reduce conflicts [-Wconflicts-sr]
> eppic.y: warning: 22 reduce/reduce conflicts [-Wconflicts-rr]
> eppic.y: note: rerun with option '-Wcounterexamples' to generate conflict
> counterexamples
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_util.o eppic_util.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_node.o eppic_node.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_var.o eppic_var.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_func.o eppic_func.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_str.o eppic_str.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_op.o eppic_op.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_num.o eppic_num.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_stat.o eppic_stat.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_builtin.o eppic_builtin.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_type.o eppic_type.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_case.o eppic_case.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_api.o eppic_api.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_member.o eppic_member.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_alloc.o eppic_alloc.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_define.o eppic_define.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_input.o eppic_input.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c -o
> eppic_print.o eppic_print.c
> bison -peppicpp -v -t -d eppicpp.y
> eppicpp.y: warning: 23 shift/reduce conflicts [-Wconflicts-sr]
> eppicpp.y: note: rerun with option '-Wcounterexamples' to generate
> conflict counterexamples
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c
> eppicpp.tab.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c eppic.tab.c
> flex -L -Peppic -t eppic.l > lex.eppic.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c lex.eppic.c
> flex -Peppicpp -t eppicpp.l > lex.eppicpp.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c
> lex.eppicpp.c
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -o mkbaseop
> mkbaseop.c
> ./mkbaseop > baseops.c
> /bin/sh: 1: ./mkbaseop: Exec format error
> make[5]: [Makefile:71: baseops.o] Error 126 (ignored)
> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> Did I miss anything else?
>
> ...
> aarch64-linux-gnu-gcc -g -O0 -fno-omit-frame-pointer -fPIC -c baseops.c
> ar cur libeppic.a eppic_util.o eppic_node.o eppic_var.o eppic_func.o
> eppic_str.o eppic_op.o eppic_num.o eppic_stat.o eppic_builtin.o
> eppic_type.o eppic_case.o eppic_api.o eppic_member.o eppic_alloc.o
> eppic_define.o eppic_input.o eppic_print.o eppicpp.tab.o eppic.tab.o
> lex.eppic.o lex.eppicpp.o baseops.o
> ar: `u' modifier ignored since `D' is the default (see `U')
> aarch64-linux-gnu-gcc -g -O0 -Ieppic/libeppic -I.. -nostartfiles -shared
> -rdynamic -o eppic.so eppic/applications/crash/eppic.c -fPIC -DARM64
> -DGDB_16_2 -Leppic/libeppic -leppic
> aarch64-linux-gnu-gcc -Wall -g -I. -shared -rdynamic -o snap.so snap.c
> -fPIC -DARM64 -DGDB_16_2
>
> Thanks
> Lianbo
>
>
>> Signed-off-by: Petr Tesarik <ptesarik(a)suse.com>
>> ---
>> extensions/eppic.mk | 2 +-
>> extensions/snap.mk | 2 +-
>> 2 files changed, 2 insertions(+), 2 deletions(-)
>>
>> diff --git a/extensions/eppic.mk b/extensions/eppic.mk
>> index 9435793..b51a84b 100644
>> --- a/extensions/eppic.mk
>> +++ b/extensions/eppic.mk
>> @@ -68,7 +68,7 @@ lib-eppic:
>> cd eppic/libeppic && make
>>
>> eppic.so: ../defs.h $(APPFILE) lib-eppic
>> - gcc -g -O0 -Ieppic/libeppic -I.. -nostartfiles -shared -rdynamic
>> -o eppic.so $(APPFILE) -fPIC $(TARGET_FLAGS) $(GDB_FLAGS) -Leppic/libeppic
>> -leppic
>> + $(CC) -g -O0 -Ieppic/libeppic -I.. -nostartfiles -shared
>> -rdynamic -o eppic.so $(APPFILE) -fPIC $(TARGET_FLAGS) $(GDB_FLAGS)
>> -Leppic/libeppic -leppic
>>
>> clean:
>> if [ -d eppic/libeppic ]; \
>> diff --git a/extensions/snap.mk b/extensions/snap.mk
>> index 2fb4ed6..ac3f723 100644
>> --- a/extensions/snap.mk
>> +++ b/extensions/snap.mk
>> @@ -47,4 +47,4 @@ endif
>> all: snap.so
>>
>> snap.so: $(INCDIR)/defs.h snap.c
>> - gcc -Wall -g -I$(INCDIR) -shared -rdynamic -o snap.so snap.c
>> -fPIC -D$(TARGET) $(TARGET_CFLAGS) $(GDB_FLAGS)
>> + $(CC) -Wall -g -I$(INCDIR) -shared -rdynamic -o snap.so snap.c
>> -fPIC -D$(TARGET) $(TARGET_CFLAGS) $(GDB_FLAGS)
>> --
>> 2.53.0
>>
> --
> Crash-utility mailing list -- devel(a)lists.crash-utility.osci.io
> To unsubscribe send an email to devel-leave(a)lists.crash-utility.osci.io
> https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
> Contribution Guidelines:
https://github.com/crash-utility/crash/wiki
>
--
- Luc