gpt4 book ai didi

operating-system - 使用当前的 autotools 移植 Newlib

转载 作者:行者123 更新时间:2023-12-04 07:24:46 25 4
gpt4 key购买 nike

我正在尝试为我的爱好内核构建一个工具链,但在构建 Newlib 时遇到了问题。每当我尝试在 newlib/libc/sys/下的内核目录中运行 autoreconf 时,我都会收到错误消息:

configure.in:5: error: support for Cygnus-style trees has been removed

这是 configure.in 的内容(基本上,取自下面的教程):

AC_PREREQ(2.59)
AC_INIT([newlib], [NEWLIB_VERSION])
AC_CONFIG_SRCDIR([crt0.S])
AC_CONFIG_AUX_DIR(../../../..)
NEWLIB_CONFIGURE(../../..)
AC_CONFIG_FILES([Makefile])
AC_OUTPUT

和 Makefile.am 的源代码(同样主要来自教程):

AUTOMAKE_OPTIONS = cygnus
INCLUDES = $(NEWLIB_CFLAGS) $(CROSS_CFLAGS) $(TARGET_CFLAGS)
AM_CCASFLAGS = $(INCLUDES)

noinst_LIBRARIES = lib.a

if MAY_SUPPLY_SYSCALLS
extra_objs = $(lpfx)syscalls.o
else
extra_objs =
endif

lib_a_SOURCES =
lib_a_LIBADD = $(extra_objs)
EXTRA_lib_a_SOURCES = syscalls.c crt0.S
lib_a_DEPENDENCIES = $(extra_objs)
lib_a_CCASFLAGS = $(AM_CCASFLAGS)
lib_a_CFLAGS = $(AM_CFLAGS)

if MAY_SUPPLY_SYSCALLS
all: crt0.o
endif

ACLOCAL_AMFLAGS = -I ../../..
CONFIG_STATUS_DEPENDENCIES = $(newlib_basedir)/configure.host

是的,我已经尝试删除 AUTOMAKE_OPTIONS=cygnus

我用 Google 搜索并试图理解这一点,据我所知,这是因为我使用的 autotools 的版本。根据我最初使用的教程 ( OSDev - OS Specific Toolchain ),我需要一个旧版本。我的问题是我正在使用 Kubuntu,它使用 apt 包管理器,并且该版本甚至暂时无法回退。必须对此进行一些修复。要么 Newlib 已过时(此版本是 2013 年 12 月发布的...),要么开发人员疯狂依赖过时的 autotools 版本。

我唯一能想到的是,这是来自 newlib 配置方案本身的消息,在这种情况下,我不知道如何修改我的 configure.in 和 Makefile.am 以与新的 newlib 配置格式保持一致。到目前为止,该教程是我发现的唯一一个没有使用 libgloss(我不想这样做)的教程,并且 newlib 的文档中缺少添加新目标的文档(或者我错过了一些东西) .

这里是一些版本信息:

  • 系统:Kubuntu 14.04
  • 汽车制造商:1.14.1
  • 自动配置:2.69
  • 新库:2.1.0

最佳答案

不幸的是,恐怕使用 automake 1.12 或更早版本是您唯一的选择。 Ubuntu 有一个 Automake1.11 单独的包来帮助你,如果我没记错的话,因为 1.12 和 1.14 之间的兼容性通常很好,但在此之前它是参差不齐的。

关于operating-system - 使用当前的 autotools 移植 Newlib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23976423/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com