On 28.09.23 05:13, lijiang wrote:
[...]
This issue still exists with the v2:
https://listman.redhat.com/archives/crash-utility/2023-September/011021.html
<
https://listman.redhat.com/archives/crash-utility/2023-September/011021.h...
I can reproduce it with the following steps(require kernel-devel package):
[1] make lzo
[2] make clean
[3] make lzo(or make warn)
# make lzo
TARGET: ARM64
CRASH: 8.0.3++
GDB: 10.2
CXX gdb.o
CXX ../../crash_target.o
CXX aarch32-linux-nat.o
CXX aarch32-tdep.o
CXX aarch64-linux-nat.o
CXX aarch64-linux-tdep.o
CXX aarch64-ravenscar-thread.o
CXX aarch64-tdep.o
...
# make warn
TARGET: ARM64
CRASH: 8.0.3++
GDB: 10.2
CXX gdb.o
CXX ../../crash_target.o
CXX aarch32-linux-nat.o
CXX aarch32-tdep.o
CXX aarch64-linux-nat.o
CXX aarch64-linux-tdep.o
CXX aarch64-ravenscar-thread.o
CXX aarch64-tdep.o
...
Thanks, I can see build problems now too after rebasing my changes to
the current master branch.
Digging into, I noticed that building the memory_driver is actually
broken, as it passes the wrong path to the kernel's makefile.
When invoked via '${MAKE} -C memory_driver ...' $(PWD) still refers to
the upper directory, i.e. .../crash and not .../crash/memory_driver.
That's why the '${MAKE} -C ${KDIR} M=${PWD} ... clean' actually calls
the 'clean' target in .../crash and not .../crash/memory_driver as it
should.
The fix is easy, $(PWD) needs to be updated in memory_driver/Makefile.
I'll send a v3 with this change broken out as a separate patch, as it is
a bugfix on its own ('make memory_driver' does nothing in master right now).
>
> [2] With the patch 2/2, it always reports the following error "No such
> file or directory", if the kernel-devel package is not installed.
> # make clean
> ...
> make -C /lib/modules/xxx/build M=/home/crash SUBDIRS=/home/crash clean
> || rm -f *.mod.c *.ko *.o Module.*
> make[3]: *** /lib/modules/xxx/build: No such file or directory. Stop.
>
> Actually, I did not build the crash.ko in the directory
memory_driver/.
>
> Is that expected behavior?
Ahh, yes. That's expected, but unfortunate behavior. I'll fix it by
testing if the build directory exists first to avoid the error message.
The fall-back handling is already there -- simply does the old 'rm
*.mod.c *.ko *.o Module.*'. However, there's no need to generate an
error message when we know in advance that the kernel build directory is
missing.
With the v2, this issue disappeared.
Thanks,
Mathias
Thanks.
Lianbo