[Bug 1110294] New: vpp-18.07.1 build -j1 fails
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
Bug ID: 1110294
Summary: vpp-18.07.1 build -j1 fails
Classification: openSUSE
Product: openSUSE Tumbleweed
Version: Current
Hardware: Other
OS: openSUSE Factory
Status: NEW
Severity: Normal
Priority: P5 - None
Component: Development
Assignee: marco.varlese@suse.com
Reporter: bwiedemann@suse.com
QA Contact: qa-bugs@suse.de
CC: nirmoy.das@suse.com
Found By: Development
Blocker: ---
While working on reproducible builds for openSUSE, I found that
Factory vpp does not build with -j1
Steps To Reproduce:
osc co openSUSE:Factory/vpp && cd $_
osc build --no-service -j1
Actual Results:
Build fails with
CC vnet/bier/bier_disp_table.lo
CC vnet/bier/bier_bift_table.lo
CCLD libvnet.la
libtool: error: cannot find the library 'libvnet_avx2.la' or unhandled
argument 'libvnet_avx2.la'
make[4]: *** [Makefile:6349: libvnet.la] Error 1
make[4]: Leaving directory
'/home/abuild/rpmbuild/BUILD/vpp-18.07.1/build-root/build-vpp-native/vpp'
This error goes away with
Index: vpp-18.07.1/src/vnet.am
===================================================================
--- vpp-18.07.1.orig/src/vnet.am
+++ vpp-18.07.1/src/vnet.am
@@ -1295,6 +1295,7 @@ libvnet_avx2_la_CFLAGS = \
-DCLIB_MARCH_VARIANT=avx2
noinst_LTLIBRARIES += libvnet_avx2.la
libvnet_la_LIBADD += libvnet_avx2.la
+libvnet_la_DEPENDENCIES += libvnet_avx2.la
endif
if CC_SUPPORTS_AVX512
@@ -1307,6 +1308,7 @@ libvnet_avx512_la_CFLAGS = \
-DCLIB_MARCH_VARIANT=avx512
noinst_LTLIBRARIES += libvnet_avx512.la
libvnet_la_LIBADD += libvnet_avx512.la
+libvnet_la_DEPENDENCIES += libvnet_avx512.la
endif
endif
but then a different, related error pops up
about double-defined symbols from avx512
vnet.am seems to be dropped from vpp in
commit 855e26868ff8b9e6d00ca4d69ce6c9fdc0f2e121
Author: Damjan Marion
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c1
--- Comment #1 from Marco Varlese
While working on reproducible builds for openSUSE, I found that Factory vpp does not build with -j1
Steps To Reproduce: osc co openSUSE:Factory/vpp && cd $_ osc build --no-service -j1
Actual Results: Build fails with CC vnet/bier/bier_disp_table.lo CC vnet/bier/bier_bift_table.lo CCLD libvnet.la libtool: error: cannot find the library 'libvnet_avx2.la' or unhandled argument 'libvnet_avx2.la' make[4]: *** [Makefile:6349: libvnet.la] Error 1 make[4]: Leaving directory '/home/abuild/rpmbuild/BUILD/vpp-18.07.1/build-root/build-vpp-native/vpp'
This error goes away with
Index: vpp-18.07.1/src/vnet.am =================================================================== --- vpp-18.07.1.orig/src/vnet.am +++ vpp-18.07.1/src/vnet.am @@ -1295,6 +1295,7 @@ libvnet_avx2_la_CFLAGS = \ -DCLIB_MARCH_VARIANT=avx2 noinst_LTLIBRARIES += libvnet_avx2.la libvnet_la_LIBADD += libvnet_avx2.la +libvnet_la_DEPENDENCIES += libvnet_avx2.la endif
if CC_SUPPORTS_AVX512 @@ -1307,6 +1308,7 @@ libvnet_avx512_la_CFLAGS = \ -DCLIB_MARCH_VARIANT=avx512 noinst_LTLIBRARIES += libvnet_avx512.la libvnet_la_LIBADD += libvnet_avx512.la +libvnet_la_DEPENDENCIES += libvnet_avx512.la endif endif
but then a different, related error pops up about double-defined symbols from avx512
vnet.am seems to be dropped from vpp in commit 855e26868ff8b9e6d00ca4d69ce6c9fdc0f2e121 Author: Damjan Marion
Date: Fri Aug 24 13:37:45 2018 +0200 Switch to cmake
Change-Id: I982b69390c55b5ffbd744f355efc0aaf425b360c Signed-off-by: Damjan Marion
so maybe it is easier to upgrade first and then re-try?
So, the latest stable version is 18.07.1 We cannot update to anything beyond that because of cross-dependencies (e.g. OpenvSwitch) on DPDK: VPP uses DPDK and the only common version right now we can use is 18.02. Beside the actual bug, may I ask you why you need to run the build with -j1 ? With parallel builds VPP already takes 20-25 mins to build... :( -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
Marco Varlese
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c3
--- Comment #3 from Bernhard Wiedemann
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c5
Jan Engelhardt
I found that Factory vpp does not build with -j1 CCLD libvnet.la libtool: error: cannot find the library 'libvnet_avx2.la' or unhandled argument 'libvnet_avx2.la'
1. I cannot reproduce this. After branching network/vpp into home:jengelh:branches:network/vpp and commenting out the %patch2 call, the package *still* builds. The only way I can raise the error is by forcing libvnet_avx2.la out of libvnet_la_LIBADD and into libvnet_la_DEPENDENCIES --- kind of what part of your patch does. So the patch actually broke stuff.
Error goes away with +libvnet_la_DEPENDENCIES += libvnet_avx2.la
2. Such lines should not be needed: all words in the libvnet_la_LIBADD variable are implicitly counted as dependencies already if the word refers to a make target. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c6
--- Comment #6 from Marco Varlese
The patch currently posted to openSUSE:Factory makes absolutely no sense whatsoever.
I found that Factory vpp does not build with -j1 CCLD libvnet.la libtool: error: cannot find the library 'libvnet_avx2.la' or unhandled argument 'libvnet_avx2.la'
1. I cannot reproduce this. After branching network/vpp into home:jengelh:branches:network/vpp and commenting out the %patch2 call, the package *still* builds.
The only way I can raise the error is by forcing libvnet_avx2.la out of libvnet_la_LIBADD and into libvnet_la_DEPENDENCIES --- kind of what part of your patch does. So the patch actually broke stuff.
Error goes away with +libvnet_la_DEPENDENCIES += libvnet_avx2.la
2. Such lines should not be needed: all words in the libvnet_la_LIBADD variable are implicitly counted as dependencies already if the word refers to a make target.
For you to get the issue reported by Bernhard, you have to build using 1 core 1 thread. You do not specify how you build the package out of network but the default would be to take any number of cores available and that does _NOT_ show the issue. If you took a look at the patch upstream you would see that both the _avx2 and _avx512 libraries are actually part of the main libvnet.la Interestingly my patch was also merged upstream after _ALL_ tests passed for VPP integration... -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c7
--- Comment #7 from Marco Varlese
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c8
--- Comment #8 from Marco Varlese
The patch currently posted to openSUSE:Factory makes absolutely no sense whatsoever.
I found that Factory vpp does not build with -j1 CCLD libvnet.la libtool: error: cannot find the library 'libvnet_avx2.la' or unhandled argument 'libvnet_avx2.la'
1. I cannot reproduce this. After branching network/vpp into home:jengelh:branches:network/vpp and commenting out the %patch2 call, the package *still* builds.
The only way I can raise the error is by forcing libvnet_avx2.la out of libvnet_la_LIBADD and into libvnet_la_DEPENDENCIES --- kind of what part of your patch does. So the patch actually broke stuff.
Error goes away with +libvnet_la_DEPENDENCIES += libvnet_avx2.la
2. Such lines should not be needed: all words in the libvnet_la_LIBADD variable are implicitly counted as dependencies already if the word refers to a make target.
Another interesting thing: you say that my patch break things but how come that actually the package builds successful even in OBS? The issue you face is a compile-time error so it should show up in OBS as well, right? -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c9
--- Comment #9 from Jan Engelhardt
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c10
--- Comment #10 from Marco Varlese
Gee, thanks for pointing out vpp is a silly piece that ignores the job count inherited from rpmbuild, and - now that I can reproduce that error - also broke dependencies bigtime.
Despite
libvnet_la_LIBADD += libvnet_avx2.la
the make call does not build avx2 first.
$ make libvnet.la CCLD libvnet.la libtool: error: cannot find the library 'libvnet_avx2.la' or unhandled argument 'libvnet_avx2.la'
So that's a dead give away. Find my patch in SR 639646.
Your SR is not building successfully. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c11
--- Comment #11 from Marco Varlese
Gee, thanks for pointing out vpp is a silly piece that ignores the job count inherited from rpmbuild, and - now that I can reproduce that error - also broke dependencies bigtime. Well, not sure if "silly" is an appropriate word for it. Its build-system simply tries to be smart enough to detect how many cores there are available. Having said that, the same build-system allows the end-user to change that by using the env variable MAKE_PARALLEL_JOBS.
Despite
libvnet_la_LIBADD += libvnet_avx2.la
the make call does not build avx2 first.
$ make libvnet.la CCLD libvnet.la libtool: error: cannot find the library 'libvnet_avx2.la' or unhandled argument 'libvnet_avx2.la'
So that's a dead give away. Find my patch in SR 639646.
-- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c12
--- Comment #12 from Jan Engelhardt
Well, not sure if "silly" is an appropriate word for it.
I think it fits because it goes against established practices: a user requesting execution with `make -j7` won't get 7 but some other number in most deployed environments. -- You are receiving this mail because: You are on the CC list for the bug.
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294
http://bugzilla.opensuse.org/show_bug.cgi?id=1110294#c13
Bernhard Wiedemann
participants (1)
-
bugzilla_noreply@novell.com