在Ubuntu 20.04上构建Alexa Auto SDK时,将gnulib fseeko.c移植到您的平台



构建Alexa自动SDK https://github.com/alexa/alexa-auto-sdk/blob/3.2/builder/README.md

使用Ubuntu 20.04(我没有更多的18.04),我运行

./builder/build.sh android -t androidx86-64 --android-api 28

| ../../m4-1.4.18/lib/freadahead.c: In function ‘freadahead’:
| ../../m4-1.4.18/lib/freadahead.c:92:3: error: #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
|    92 |  #error "Please port gnulib freadahead.c to your platform! Look at the definition of fflush, fread, ungetc on your system, then report this to bug-gnulib."
|       |   ^~~~~
| make[3]: *** [Makefile:1915: freadahead.o] Error 1
| make[3]: *** Waiting for unfinished jobs....
| ../../m4-1.4.18/lib/fseeko.c: In function ‘rpl_fseeko’:
| ../../m4-1.4.18/lib/fseeko.c:110:4: error: #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
|   110 |   #error "Please port gnulib fseeko.c to your platform! Look at the code in fseeko.c, then report this to bug-gnulib."
|       |    ^~~~~
| make[3]: *** [Makefile:1915: fseeko.o] Error 1
| make[3]: Leaving directory '/home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/build/lib'
| make[2]: *** [Makefile:1674: all] Error 2
| make[2]: Leaving directory '/home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/build/lib'
| make[1]: *** [Makefile:1572: all-recursive] Error 1
| make[1]: Leaving directory '/home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/build'
| make: *** [Makefile:1528: all] Error 2
| ERROR: oe_runmake failed
| WARNING: exit code 1 from a shell command.
| ERROR: Function failed: do_compile (log file is located at /home/hannes/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/temp/log.do_compile.2647129)
ERROR: Task (/home/hannes/oe-core/meta/recipes-devtools/m4/m4-native_1.4.18.bb:do_compile) failed with exit code '1'

这是来自/home/hannas/git/alexa-auto-sdk/builder/build/tmp-android-28/work/x86_64-linux/m4-native/1.4.18-r0/temp/log.do_compile.2647129的最后重要部分

有人知道怎么解决吗?

这是GNU m4 1.4.18和较新的glibc头文件之间的互操作性问题。

在GNU m4 1.4.19中已修复,可从https://ftp.gnu.org/gnu/m4/和GNU镜像中获得。

我在编译yocto时遇到了类似的问题。

请删除这一行

#if defined _IO_ftrylockfile || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */

并在文件中添加这一行。

#if defined _IO_EOF_SEEN || __GNU_LIBRARY__ == 1 /* GNU libc, BeOS, Haiku, Linux libc5 */

也更新了stdio-impl.h:

/* Glibc 2.28 made _IO_IN_BACKUP private.  For now, work around this
problem by defining it ourselves.  FIXME: Do not rely on glibc
internals.  */
#if !defined _IO_IN_BACKUP && defined _IO_EOF_SEEN
# define _IO_IN_BACKUP 0x100
#endif

最新更新