我试了几个Build Root,都有解决不了的问题。一部分可以解决,后面的不会。
有一个buildroot可以编译吗?
https://github.com/aodzip/buildroot-tiny200?tab=readme-ov-file
不行
https://github.com/thirtythreeforty/businesscard-linux/tree/master/board/businesscard
也不行
第一个问题:
package m4 里面
#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
Undefined SIGSTKSZ
好的, 用“patch"
04-fix-sigstksz.zip
第二个问题
fakeroot 里面
_STAT_VAR Not found
好的 用“patch”
no_STAT_VER.zip
Licheepi nano repo:
--2024-08-06 11:31:34-- http://sources.buildroot.net/linux-4.19.98-cip19-rt7.tar.xz
Resolving sources.buildroot.net (sources.buildroot.net)... 104.26.0.37, 172.67.72.56, 104.26.1.37, ...
Connecting to sources.buildroot.net (sources.buildroot.net)|104.26.0.37|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2024-08-06 11:31:34 ERROR 404: Not Found.
business card linux repo:
many errors on linking about:
multiple definition of `fwriter_buffer'
multiple definition of `bwriter_buffer'
buildroot200 repo:
multiple definition of `DSPregs'
multiple definition of `DSPregs'
等等。
I'm trying to compile buildroot from licheepi nano github. I've also tried a few others, business card linux is another repo. Since the repos are old there are incompatibilities with new versions of files. I have patched a few but then run out of ability to fix further errors. Is there a repo that's been patched already and can compile easily?
离线
我以前遇到的error
error1
c-stack.c:55:26: error: missing binary operator before token "("
55 | #elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
vim ./output/build/host-m4-1.4.18/lib/c-stack.c 注释三行代码
//#elif HAVE_LIBSIGSEGV && SIGSTKSZ < 16384
/* libsigsegv 2.6 through 2.8 have a bug where some architectures use
more than the Linux default of an 8k alternate stack when deciding
if a fault was caused by stack overflow. */
//# undef SIGSTKSZ
//# define SIGSTKSZ 16384
error2
‘_STAT_VER’ undeclared (first use in this function) 100 | #define INT_NEXT_LSTAT(a,b) NEXT_LSTAT64(_STAT_VER,a,b)
vim ./output/build/host-fakeroot-1.20.2/libfakeroot.c 添加三行代码
diff --git a/libfakeroot.c b/libfakeroot.c
index 3e80e38..14e56bc 100644
--- a/libfakeroot.c
+++ b/libfakeroot.c
@@ -90,6 +90,10 @@
#define SEND_GET_XATTR64(a,b,c) send_get_xattr64(a,b)
#endif
+#ifndef _STAT_VER
+#define _STAT_VER 0
+#endif
+
/*
These INT_* (which stands for internal) macros should always be used when
the fakeroot library owns the storage of the stat variable.
error3
/worktmp/Mwatch/buildroot-2020.02.6/output/build/qt5base-5.12.8/include/QtCore/../../src/corelib/global/qendian.h:333:35: error: ‘numeric_limits’ is not a member of ‘std’
333 | { return QSpecialInteger(std::numeric_limits::min()); }
vim /worktmp/Mwatch/buildroot-2020.02.6/output/build/qt5base-5.12.8/include/QtCore/../../src/corelib/global/qendian.h
加入#include <limits>
其他文件遇到这种错误,都加入#include <limits>
/worktmp/Mwatch/buildroot-2020.02.6/output/build/qt5base-5.12.8/src/corelib/tools/qbytearraymatcher.h
./output/build/qt5base-5.12.8/util/lexgen/generator.cpp
./output/build/qt5base-5.12.8/src/tools/moc/generator.cpp
离线
我试了那个,给你看问题。我用Ubuntu 22.04
/usr/bin/ld: libsim.a(maverick.o):(.bss+0x60): multiple definition of `DSPregs'; libsim.a(wrapper.o):(.bss+0x60): first defined here
/usr/bin/ld: libsim.a(maverick.o):(.bss+0x0): multiple definition of `DSPsc'; libsim.a(wrapper.o):(.bss+0x0): first defined here
/usr/bin/ld: libsim.a(maverick.o):(.bss+0x20): multiple definition of `DSPacc'; libsim.a(wrapper.o):(.bss+0x20): first defined here
/usr/bin/ld: libsim.a(armemu32.o):(.bss+0x0): multiple definition of `isize'; libsim.a(armemu26.o):(.bss+0x0): first defined here
collect2: error: ld returned 1 exit status
make[4]: *** [Makefile:267: run] Error 1
make[4]: Leaving directory '/home/brian/martin/buildroot-tiny200/output/build/host-gdb-8.2.1/sim/arm'
make[3]: *** [Makefile:129: all] Error 1
make[3]: Leaving directory '/home/brian/martin/buildroot-tiny200/output/build/host-gdb-8.2.1/sim'
make[2]: *** [Makefile:8239: all-sim] Error 2
make[2]: Leaving directory '/home/brian/martin/buildroot-tiny200/output/build/host-gdb-8.2.1'
make[1]: *** [Makefile:850: all] Error 2
make[1]: Leaving directory '/home/brian/martin/buildroot-tiny200/output/build/host-gdb-8.2.1'
make: *** [package/pkg-generic.mk:269: /home/brian/martin/buildroot-tiny200/output/build/host-gdb-8.2.1/.stamp_built] Error 2
离线