我正在尝试构建最新版本的glibc(2.22)。我没有修改任何glibc来源。在我的x86_64 Ubuntu 14.04.1机器上,我使用以下makefile的摘录来构建:
HOST ?= x86_64-linux-gnu
TARGET ?= x86_64-linux-gnu
CROSS_OUT = $(shell pwd)/$(TARGET)
CC ?= gcc
CXX ?= g++
LD ?= ld
[...]
CFLAGS ?= "-I$(CROSS_OUT)/include -L$(CROSS_OUT)/lib"
CXXFLAGS ?= "-I$(CROSS_OUT)/include -L$(CROSS_OUT)/lib"
CPPFLAGS ?= "-I$(CROSS_OUT)/include -L$(CROSS_OUT)/lib"
LDFLAGS ?= "-I$(CROSS_OUT)/include -L$(CROSS_OUT)/lib"
[...]
GLIBC_PATH=$(shell pwd)/glibc
GLIBC_BUILD_PATH=$(shell pwd)/glibc-build
glibc: glibc-clean
mkdir -p $(GLIBC_BUILD_PATH)
cd $(GLIBC_BUILD_PATH) && \
CC=$(CC) \
CXX=$(CXX) \
LD=$(LD) \
CFLAGS=$(CFLAGS) \
CXXFLAGS=$(CXXFLAGS) \
CPPFLAGS=$(CPPFLAGS) \
LDFLAGS=$(LDFLAGS) \
$(GLIBC_PATH)/configure \
--host=$(TARGET) \
--build=$(HOST) \
--prefix=$(CROSS_OUT) \
--disable-shared \
--enable-add-ons \
--enable-static-nss && \
make && \
make install
glibc-clean:
rm -r -f $(GLIBC_BUILD_PATH)
几乎立即停止以下错误:
In file included from <command-line>:0:0:
../include/stdc-predef.h:64:1: fatal error: /home/leon/reaper/glibc-build/libc-modules.h: No such file or directory
#endif
^
compilation terminated.
不幸的是,该文件肯定不存在。
答案 0 :(得分:1)
我在configure
使用 - 禁用共享选项时遇到同样的错误。
当我删除该选项时,构建正确传递。
我也根据glibc FAQ(我的操作系统是Debian)在CFLAGS中使用-fno-stack-protector -U_FORTIFY_SOURCE
。
此主题也有助于设置环境:
https://lists.debian.org/debian-user/2015/07/msg00120.html
这是我的构建glibc的脚本:
#!/bin/bash
# sudo aptitude install linux-headers-$(uname -r)
# sudo aptitude install build-essentials
# sudo aptitude install gawk
export CFLAGS="-fPIC -O2 -fno-stack-protector -U_FORTIFY_SOURCE"
mkdir glibc-build
cd glibc-build
../glibc-2.23/configure --disable-werror --prefix=/home/alexey/projects/work/build-dir/glibc-prefix
make
答案 1 :(得分:0)
尝试安装这些:
my $script = q{
arguments[0].setAttribute(arguments[1], arguments[2]);
arguments[0].onchange();
};
$ sudo apt-get install build-essential
请从您获得该源代码的地方链接。
答案 2 :(得分:0)
如果你想构建一个外来的libc6 /一个额外的libc6,那么glibc-2.22的构建在这里描述http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html
参考。 http://www.linuxfromscratch.org/lfs/view/stable/
建议:--prefix=/opt/glibc222
标题&#39; libc-modules.h&#39;是生成的标题。以正确的方式完成配置时出现。