criu check --extra output and dump failure

Submitted by Dmitry Safonov on April 18, 2017, 1:58 p.m.

Details

Message ID CAJwJo6ZO8CWe=Nym=a=EXO7V11yeyYDSodxqRbAJpeFNmSzxdg@mail.gmail.com
State New
Series "criu check --extra output and dump failure"
Headers show

Commit Message

Dmitry Safonov April 18, 2017, 1:58 p.m.
2017-04-18 16:30 GMT+03:00 Brinkmann, Harald
<Harald.Brinkmann@bst-international.com>:
>
> Hi Dmitry,
>
> On Tue, 2017-04-18 at 13:32 +0300, Dmitry Safonov wrote:
>> Yes, sorry about that - I gave output for master branch rather than
>> 2.12.1 release.
>> Could you provide build output on master?
>> As v3.0 release is at hand with the stuff in master, it would be good
>> to fix it right there.
>
> OK, I have tried that, but now it does not even compile all the way
> through. This is where it chokes:
>
> gcc -M -MT compel/src/lib/log-host.d -MT compel/src/lib/log-host.o
> -I__BUILD_HOST__/platform-imx6/sysroot-host/lib/pkgconfig/../../include
> -march=armv7-a -march=armv7-a -O2 -g -Wall -Wformat-security -Werror
> -DCONFIG_ARMV7 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -iquote include/
> -DNO_RELOCS -DINCLUDEDIR=\"/usr/local/include\" -DLIBEXECDIR=
> \"/usr/local/libexec\" -DLIBDIR=\"/usr/local/lib/x86_64-linux-gnu\"
> -DSTATIC_LIB=\"libcompel.a\" -DDYN_LIB=\"libcompel.so.1\" -iquote
> compel/arch/arm/src/lib/include -iquote compel/include
> -fno-strict-aliasing -fPIC -I compel/include/uapi
> compel/src/lib/log-host.c -o compel/src/lib/log-host.d
> cc1: error: bad value (armv7-a) for -march= switch
>
> If the compiled program is supposed to run on the host (in my case
> x86_64) then the '-march=armv7-a'-option is wrong here. If it is
> supposed to run on the target it should have used
> arm-v7a-linux-gnueabihf-gcc and not gcc.

Thanks for the run.
Does your buildsystem specify -march in CFLAGS or USERCFLAGS?
Because if it does so, they go to HOSTCFLAGS by default.
It can specify HOSTCFLAGS on build like (in addition to *CFLAGS):
HOSTCFLAGS=" " make
or it can omit specifying -march as criu's make adds it.

If your build system doesn't specify -march in any *CFLAGS,
then please run with attached diff - to find what happend.

> If this code is meant to run on x86, is that necessary for
> cross-compilation at all?

Yes, in criu v3.0 with libcompel release gen-offsets.sh were
replaced with a host compel tool.
The object is logger for that tool.

Patch hide | download patch | download mbox

diff --git a/Makefile b/Makefile
index d70a413c02bb..1764e808ab0f 100644
--- a/Makefile
+++ b/Makefile
@@ -18,6 +18,8 @@  export CFLAGS
 
 HOSTCFLAGS	?= $(CFLAGS)
 export HOSTCFLAGS
+$(warning HOSTCFLAGS are $(HOSTCFLAGS))
+$(warning CFLAGS are $(CFLAGS))
 
 #
 # Architecture specific options.
diff --git a/compel/Makefile b/compel/Makefile
index 43d27f55d892..bd88a8c25918 100644
--- a/compel/Makefile
+++ b/compel/Makefile
@@ -39,6 +39,9 @@  obj-y			+= arch/$(ARCH)/src/lib/handle-elf.o
 obj-y			+= src/lib/handle-elf.o
 
 host-ccflags-y		+= $(ccflags-y)
+$(warning host-ccflags-y are $(host-ccflags-y))
+$(warning ccflags-y are $(ccflags-y))
+$(warning HOSTCFLAGS are $(HOSTCFLAGS))
 
 hostprogs-y		+= compel-host-bin
 compel-host-bin-objs	:= $(patsubst %.o,%-host.o,$(obj-y) $(host-lib-y))

Comments

Brinkmann, Harald April 18, 2017, 2:34 p.m.
Hi Dmitry,

On Tue, 2017-04-18 at 16:58 +0300, Dmitry Safonov wrote:
> 2017-04-18 16:30 GMT+03:00 Brinkmann, Harald
> <Harald.Brinkmann@bst-international.com>:
> > On Tue, 2017-04-18 at 13:32 +0300, Dmitry Safonov wrote:
> >> Yes, sorry about that - I gave output for master branch rather than
> >> 2.12.1 release.
> >> Could you provide build output on master?
> >> As v3.0 release is at hand with the stuff in master, it would be good
> >> to fix it right there.
> >
> > OK, I have tried that, but now it does not even compile all the way
> > through. This is where it chokes:
> >
> > gcc -M -MT compel/src/lib/log-host.d -MT compel/src/lib/log-host.o
> > -I__BUILD_HOST__/platform-imx6/sysroot-host/lib/pkgconfig/../../include
> > -march=armv7-a -march=armv7-a -O2 -g -Wall -Wformat-security -Werror
> > -DCONFIG_ARMV7 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -iquote include/
> > -DNO_RELOCS -DINCLUDEDIR=\"/usr/local/include\" -DLIBEXECDIR=
> > \"/usr/local/libexec\" -DLIBDIR=\"/usr/local/lib/x86_64-linux-gnu\"
> > -DSTATIC_LIB=\"libcompel.a\" -DDYN_LIB=\"libcompel.so.1\" -iquote
> > compel/arch/arm/src/lib/include -iquote compel/include
> > -fno-strict-aliasing -fPIC -I compel/include/uapi
> > compel/src/lib/log-host.c -o compel/src/lib/log-host.d
> > cc1: error: bad value (armv7-a) for -march= switch
> >
> > If the compiled program is supposed to run on the host (in my case
> > x86_64) then the '-march=armv7-a'-option is wrong here. If it is
> > supposed to run on the target it should have used
> > arm-v7a-linux-gnueabihf-gcc and not gcc.
>
> Thanks for the run.
> Does your buildsystem specify -march in CFLAGS or USERCFLAGS?
> Because if it does so, they go to HOSTCFLAGS by default.
> It can specify HOSTCFLAGS on build like (in addition to *CFLAGS):
> HOSTCFLAGS=" " make
> or it can omit specifying -march as criu's make adds it.

I don't think so.

> If your build system doesn't specify -march in any *CFLAGS,
> then please run with attached diff - to find what happend.

Here is the relevant output:

Makefile:21: HOSTCFLAGS are
-I__BUILD_HOST__/platform-imx6/sysroot-host/lib/pkgconfig/../../include
Makefile:22: CFLAGS are
-I__BUILD_HOST__/platform-imx6/sysroot-host/lib/pkgconfig/../../include

That's the include path for libprotobuf-c and looks OK to me.

compel/Makefile:42: host-ccflags-y are -DINCLUDEDIR=\"/usr/local/include\" -DLIBEXECDIR=\"/usr/local/libexec\" -DLIBDIR=\"/usr/local/lib/x86_64-linux-gnu\" -DSTATIC_LIB=\"libcompel.a\" -DDYN_LIB=\"libcompel.so.1\" -iquote compel/arch/arm/src/lib/include -iquote compel/include -fno-strict-aliasing -fPIC -I compel/include/uapi
compel/Makefile:43: ccflags-y are -DINCLUDEDIR=\"/usr/local/include\" -DLIBEXECDIR=\"/usr/local/libexec\" -DLIBDIR=\"/usr/local/lib/x86_64-linux-gnu\" -DSTATIC_LIB=\"libcompel.a\" -DDYN_LIB=\"libcompel.so.1\" -iquote compel/arch/arm/src/lib/include -iquote compel/include -fno-strict-aliasing -fPIC -I compel/include/uapi
compel/Makefile:44: HOSTCFLAGS are -I__BUILD_HOST__/platform-imx6/sysroot-host/lib/pkgconfig/../../include -march=armv7-a -march=armv7-a -O2 -g -Wall -Wformat-security -Werror -DCONFIG_ARMV7 -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE  -iquote include/  -DNO_RELOCS

Do those directory definitions look good to you? In our build system
anything that is supposed to run on the build host goes into
platform-imx6/sysroot-host and anything for the target goes into
platform-imx6/sysroot-target.

Hope that helps.

--

Harald

BST eltromat International GmbH
Werk Leopoldshöhe
Herforder Straße 249-251
D-33818 Leopoldshöhe

T:      +49 (5208) 987-513

E:      harald.brinkmann@bst-international.com
W:      http://www.bst-eltromat.com