2015-10-28 3 views
1

Я пытаюсь создать последнюю версию glibc (2.22). Я не модифицировал источники glibc. На моей x86_64 Ubuntu 14.04.1 машине я использую следующий экстракт Makefile построить:Ошибка сборки библиотеки GNU C (glibc) (libc-modules.h не найден)

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

ли вы решить эту проблему (у меня есть один и тот же один)? -fno-stack-protector -U_FORTIFY_SOURCE в CFLAGS не помогает. – Dzenly

ответ

0

Попробуйте установить эти:

$ sudo apt-get install build-essential

$ sudo apt-get install libc6

И ссылку, откуда вы получили этот исходный код пожалуйста.

+0

Они уже были установлены. Я загрузил источник с официального ftp по адресу http://ftp.gnu.org/gnu/glibc](http://ftp.gnu.org/gnu/glibc. – raptor

0

Если вы хотите построить инопланетный libc6/дополнительный libc6, строить из Glibc-2,22 описана здесь http://www.linuxfromscratch.org/lfs/view/stable/chapter05/glibc.html

Ref. http://www.linuxfromscratch.org/lfs/view/stable/

Предложить: --prefix=/opt/glibc222


Заголовок 'Libc-modules.h' представляет собой заголовок генерируется. Появляется, когда настройка выполняется правильно.


1

В встретил ту же ошибку, когда я использовал --disable-общий вариант для configure. Когда я удалил эту опцию, сборка прошла правильно. Я также использую -fno-stack-protector -U_FORTIFY_SOURCE в CFLAGS в соответствии с glibc FAQ (моя ОС - Debian). Кроме того, эта тема была полезной для создания среды: 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 
Смежные вопросы