You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of the failed log:
a - ../nondebug/libpmempool/libpmempool_all.o
make[2]: Leaving directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/git/src/libpmempool'
make -C libpmempool DEBUG=1
make[2]: Entering directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/git/src/libpmempool'
mkdir -p ../debug/libpmempool
mkdir -p ../debug/libpmempool/.. make -C libpmemblk
make[3]: Entering directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/git/src/libpmempool'
make[3]: *** libpmemblk: No such file or directory. Stop.
make[3]: Leaving directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/git/src/libpmempool'
make[2]: *** [../Makefile.inc:265: ../debug/libpmempool/../libpmemblk/libpmemblk_unscoped.o] Error 2
make[2]: *** Waiting for unfinished jobs....
Bold part is not expected.
Here is my analyzation:
In the failed log, after Entering src/libpmempool, the build system think "../debug/libpmempool/../libpmemblk/libpmemblk_unscoped.o"
is not existed, so it try to build following target in src/Makefile.inc, and LIBSDIR is not defined, the build system try to enter libpmemblk, but we are now under src/libpmempool, so "No such file or directory" happened.
$(PMEMBLK_PRIV_OBJ): $(MAKE) -C $(LIBSDIR) libpmemblk
But I cannot understand why it is happened, because, we have already add following dependency in src/Makefile
libpmempool: libpmemblk
so that, during run "make -C libpmempool DEBUG=1", libpmemblk_unscoped.o already there, so target $(PMEMBLK_PRIV_OBJ) should not be build.
and from the failed log, I can see "../debug/libpmempool/../libpmemblk/libpmemblk_unscoped.o" already generated. why the build system take it as not exist?
After the build failed and exited, I checked ../debug/libpmempool/../libpmemblk/libpmemblk_unscoped.o is there.
Please see Details for more log info.
Expected behavior:
Part of the success log:
a - ../nondebug/libpmempool/libpmempool_all.o
ln -sf libpmempool.so.1.0.0 ../nondebug/libpmempool/../libpmempool.so.1
ln -sf libpmempool.so.1 ../nondebug/libpmempool/../libpmempool.so
make[2]: Leaving directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.11.1-r0/git/src/libpmempool'
make -C libpmempool DEBUG=1
make[2]: Entering directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.11.1-r0/git/src/libpmempool'
mkdir -p ../debug/libpmempool
mkdir -p ../debug/libpmempool/..
x86_64-wrs-linux-gcc -m64 -march=nehalem -mtune=generic -mfpmath=sse -m
~
libpmemblk will be deprecated in release 1.13.0 (#5538) and it will be removed in the following release. This issue won't be fixed.
For further reading, please take a look at our blog post with more details.
ISSUE: Build Failure
Compile failed
Environment Information
Cross compile with yocto project.
pmdk version: 1.9
Please provide a reproduction of the bug:
How often bug is revealed: (always, often, rare):
rare
Actual behavior:
Part of the failed log:
a - ../nondebug/libpmempool/libpmempool_all.o
make[2]: Leaving directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/git/src/libpmempool'
make -C libpmempool DEBUG=1
make[2]: Entering directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/git/src/libpmempool'
mkdir -p ../debug/libpmempool
mkdir -p ../debug/libpmempool/..
make -C libpmemblk
make[3]: Entering directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/git/src/libpmempool'
make[3]: *** libpmemblk: No such file or directory. Stop.
make[3]: Leaving directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/git/src/libpmempool'
make[2]: *** [../Makefile.inc:265: ../debug/libpmempool/../libpmemblk/libpmemblk_unscoped.o] Error 2
make[2]: *** Waiting for unfinished jobs....
Bold part is not expected.
Here is my analyzation:
In the failed log, after Entering src/libpmempool, the build system think "../debug/libpmempool/../libpmemblk/libpmemblk_unscoped.o"
$(MAKE) -C $ (LIBSDIR) libpmemblk
is not existed, so it try to build following target in src/Makefile.inc, and LIBSDIR is not defined, the build system try to enter libpmemblk, but we are now under src/libpmempool, so "No such file or directory" happened.
$(PMEMBLK_PRIV_OBJ):
But I cannot understand why it is happened, because, we have already add following dependency in src/Makefile
libpmempool: libpmemblk
so that, during run "make -C libpmempool DEBUG=1", libpmemblk_unscoped.o already there, so target $(PMEMBLK_PRIV_OBJ) should not be build.
and from the failed log, I can see "../debug/libpmempool/../libpmemblk/libpmemblk_unscoped.o" already generated. why the build system take it as not exist?
After the build failed and exited, I checked ../debug/libpmempool/../libpmemblk/libpmemblk_unscoped.o is there.
Please see Details for more log info.
Expected behavior:
Part of the success log:
a - ../nondebug/libpmempool/libpmempool_all.o
ln -sf libpmempool.so.1.0.0 ../nondebug/libpmempool/../libpmempool.so.1
ln -sf libpmempool.so.1 ../nondebug/libpmempool/../libpmempool.so
make[2]: Leaving directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.11.1-r0/git/src/libpmempool'
make -C libpmempool DEBUG=1
make[2]: Entering directory '/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.11.1-r0/git/src/libpmempool'
mkdir -p ../debug/libpmempool
mkdir -p ../debug/libpmempool/..
x86_64-wrs-linux-gcc -m64 -march=nehalem -mtune=generic -mfpmath=sse -m
~
Details
Some log info:
$ grep -rRn "make -C" log.do_compile
6:make -C src all
8:make -C libpmem
9:make -C common
10:make -C core
11:make -C librpmem
12:make -C libpmem2
22:make -C librpmem DEBUG=1
261:make -C core DEBUG=1
321:make -C common DEBUG=1
420:make -C libpmem2 DEBUG=1
426:make -C libpmem DEBUG=1
615:make -C libpmemblk
616:make -C libpmemlog
617:make -C libpmemobj
844:make -C libpmemlog DEBUG=1
853:make -C libpmemobj DEBUG=1
1193:make -C libpmemblk DEBUG=1
1294:make -C libpmempool
1435:make -C libpmempool DEBUG=1
1439:make -C libpmemblk
$ grep -rRn "-o.debug.libpmemblk_unscoped.o" log.do_compile
1184:x86_64-wrs-linux-ld --sysroot=/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/recipe-sysroot -o ../nondebug/libpmemblk/libpmemblk_unscoped.o -r ../nondebug/libpmemblk/alloc.o ../nondebug/libpmemblk/fs_posix.o ../nondebug/libpmemblk/os_posix.o ../nondebug/libpmemblk/os_thread_posix.o ../nondebug/libpmemblk/out.o ../nondebug/libpmemblk/util.o ../nondebug/libpmemblk/util_posix.o ../nondebug/libpmemblk/bad_blocks.o ../nondebug/libpmemblk/set_badblocks.o ../nondebug/libpmemblk/ctl.o ../nondebug/libpmemblk/ctl_prefault.o ../nondebug/libpmemblk/ctl_sds.o ../nondebug/libpmemblk/ctl_fallocate.o ../nondebug/libpmemblk/ctl_cow.o ../nondebug/libpmemblk/file.o ../nondebug/libpmemblk/file_posix.o ../nondebug/libpmemblk/mmap.o ../nondebug/libpmemblk/mmap_posix.o ../nondebug/libpmemblk/os_deep_linux.o ../nondebug/libpmemblk/pool_hdr.o ../nondebug/libpmemblk/rand.o ../nondebug/libpmemblk/ravl.o ../nondebug/libpmemblk/set.o ../nondebug/libpmemblk/shutdown_state.o ../nondebug/libpmemblk/uuid.o ../nondebug/libpmemblk/uuid_linux.o ../nondebug/libpmemblk/pmem2_utils.o ../nondebug/libpmemblk/config.o ../nondebug/libpmemblk/persist_posix.o ../nondebug/libpmemblk/badblocks.o ../nondebug/libpmemblk/badblocks_ndctl.o ../nondebug/libpmemblk/usc_ndctl.o ../nondebug/libpmemblk/source.o ../nondebug/libpmemblk/source_posix.o ../nondebug/libpmemblk/auto_flush_linux.o ../nondebug/libpmemblk/deep_flush_linux.o ../nondebug/libpmemblk/extent_linux.o ../nondebug/libpmemblk/pmem2_utils_linux.o ../nondebug/libpmemblk/pmem2_utils_ndctl.o ../nondebug/libpmemblk/region_namespace_ndctl.o ../nondebug/libpmemblk/blk.o ../nondebug/libpmemblk/btt.o ../nondebug/libpmemblk/libpmemblk.o
1186:x86_64-wrs-linux-objcopy --localize-hidden
sed -n 's/^ *\([a-zA-Z0-9_]*\);$/-G \1/p' libpmemblk.link
../nondebug/libpmemblk/libpmemblk_unscoped.o ../nondebug/libpmemblk/libpmemblk_all.o1285:x86_64-wrs-linux-ld --sysroot=/build/tmp-glibc/work/corei7-64-wrs-linux/pmdk/1.9-r0/recipe-sysroot -o ../debug/libpmemblk/libpmemblk_unscoped.o -r ../debug/libpmemblk/alloc.o ../debug/libpmemblk/fs_posix.o ../debug/libpmemblk/os_posix.o ../debug/libpmemblk/os_thread_posix.o ../debug/libpmemblk/out.o ../debug/libpmemblk/util.o ../debug/libpmemblk/util_posix.o ../debug/libpmemblk/bad_blocks.o ../debug/libpmemblk/set_badblocks.o ../debug/libpmemblk/ctl.o ../debug/libpmemblk/ctl_prefault.o ../debug/libpmemblk/ctl_sds.o ../debug/libpmemblk/ctl_fallocate.o ../debug/libpmemblk/ctl_cow.o ../debug/libpmemblk/file.o ../debug/libpmemblk/file_posix.o ../debug/libpmemblk/mmap.o ../debug/libpmemblk/mmap_posix.o ../debug/libpmemblk/os_deep_linux.o ../debug/libpmemblk/pool_hdr.o ../debug/libpmemblk/rand.o ../debug/libpmemblk/ravl.o ../debug/libpmemblk/set.o ../debug/libpmemblk/shutdown_state.o ../debug/libpmemblk/uuid.o ../debug/libpmemblk/uuid_linux.o ../debug/libpmemblk/pmem2_utils.o ../debug/libpmemblk/config.o ../debug/libpmemblk/persist_posix.o ../debug/libpmemblk/badblocks.o ../debug/libpmemblk/badblocks_ndctl.o ../debug/libpmemblk/usc_ndctl.o ../debug/libpmemblk/source.o ../debug/libpmemblk/source_posix.o ../debug/libpmemblk/auto_flush_linux.o ../debug/libpmemblk/deep_flush_linux.o ../debug/libpmemblk/extent_linux.o ../debug/libpmemblk/pmem2_utils_linux.o ../debug/libpmemblk/pmem2_utils_ndctl.o ../debug/libpmemblk/region_namespace_ndctl.o ../debug/libpmemblk/blk.o ../debug/libpmemblk/btt.o ../debug/libpmemblk/libpmemblk.o
1287:x86_64-wrs-linux-objcopy --localize-hidden
sed -n 's/^ *\([a-zA-Z0-9_]*\);$/-G \1/p' libpmemblk.link
../debug/libpmemblk/libpmemblk_unscoped.o** ../debug/libpmemblk/libpmemblk_all.o$ grep -rRn "No such" log.do_compile.bak
1441: make[3]: libpmemblk: No such file or directory. Stop.
Additional information about Priority and Help Requested:
I have 2 ideas about fix this, but I am not quite familiar with this package, so please help to check, thanks.
just remove following part, since we already have libpmempool: libpmemblk
$(MAKE) -C $ (LIBSDIR) libpmemblk
$(PMEMBLK_PRIV_OBJ):
set LIBSDIR correctly during build target libpmempool. I have one concern, is it good to rebuild libpmemblk again?
The text was updated successfully, but these errors were encountered: