mirror of
https://github.com/EnderIce2/Fennix.git
synced 2025-05-28 07:24:33 +00:00
refactor(rootfs): reorganize file structure and remove unnecessary .gitkeep files
Signed-off-by: EnderIce2 <enderice2@protonmail.com>
This commit is contained in:
parent
8f88d9028e
commit
d251d9d03f
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,6 +1,6 @@
|
|||||||
iso_tmp_data
|
iso_tmp_data
|
||||||
artifacts
|
artifacts
|
||||||
initrd_tmp_data
|
tmp_rootfs
|
||||||
rootfs/usr/include/*
|
rootfs/usr/include/*
|
||||||
!rootfs/usr/include/.gitkeep
|
!rootfs/usr/include/.gitkeep
|
||||||
doxygen-doc
|
doxygen-doc
|
||||||
|
16
.vscode/launch.json
vendored
16
.vscode/launch.json
vendored
@ -19,12 +19,12 @@
|
|||||||
"description": "Make breakpoint pending on future shared library load."
|
"description": "Make breakpoint pending on future shared library load."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "add-symbol-file ${workspaceFolder}/../initrd_tmp_data/bin/utest",
|
"text": "add-symbol-file ${workspaceFolder}/../tmp_rootfs/bin/utest",
|
||||||
"description": "/bin/utest (0x00400000)",
|
"description": "/bin/utest (0x00400000)",
|
||||||
"ignoreFailures": true
|
"ignoreFailures": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "add-symbol-file ${workspaceFolder}/../initrd_tmp_data/bin/libc_test",
|
"text": "add-symbol-file ${workspaceFolder}/../tmp_rootfs/bin/libc_test",
|
||||||
"description": "/bin/libc_test (0x00600000)",
|
"description": "/bin/libc_test (0x00600000)",
|
||||||
"ignoreFailures": true
|
"ignoreFailures": true
|
||||||
},
|
},
|
||||||
@ -52,12 +52,12 @@
|
|||||||
"description": "Make breakpoint pending on future shared library load."
|
"description": "Make breakpoint pending on future shared library load."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "add-symbol-file ${workspaceFolder}/../initrd_tmp_data/bin/utest",
|
"text": "add-symbol-file ${workspaceFolder}/../tmp_rootfs/bin/utest",
|
||||||
"description": "/bin/utest (0x00400000)",
|
"description": "/bin/utest (0x00400000)",
|
||||||
"ignoreFailures": true
|
"ignoreFailures": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "add-symbol-file ${workspaceFolder}/../initrd_tmp_data/bin/libc_test",
|
"text": "add-symbol-file ${workspaceFolder}/../tmp_rootfs/bin/libc_test",
|
||||||
"description": "/bin/libc_test (0x00600000)",
|
"description": "/bin/libc_test (0x00600000)",
|
||||||
"ignoreFailures": true
|
"ignoreFailures": true
|
||||||
},
|
},
|
||||||
@ -85,12 +85,12 @@
|
|||||||
"description": "Make breakpoint pending on future shared library load."
|
"description": "Make breakpoint pending on future shared library load."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "add-symbol-file ${workspaceFolder}/../initrd_tmp_data/bin/utest",
|
"text": "add-symbol-file ${workspaceFolder}/../tmp_rootfs/bin/utest",
|
||||||
"description": "/bin/utest (0x00400000)",
|
"description": "/bin/utest (0x00400000)",
|
||||||
"ignoreFailures": true
|
"ignoreFailures": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "add-symbol-file ${workspaceFolder}/../initrd_tmp_data/bin/libc_test",
|
"text": "add-symbol-file ${workspaceFolder}/../tmp_rootfs/bin/libc_test",
|
||||||
"description": "/bin/libc_test (0x00600000)",
|
"description": "/bin/libc_test (0x00600000)",
|
||||||
"ignoreFailures": true
|
"ignoreFailures": true
|
||||||
},
|
},
|
||||||
@ -118,12 +118,12 @@
|
|||||||
"description": "Make breakpoint pending on future shared library load."
|
"description": "Make breakpoint pending on future shared library load."
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "add-symbol-file ${workspaceFolder}/../initrd_tmp_data/bin/utest",
|
"text": "add-symbol-file ${workspaceFolder}/../tmp_rootfs/bin/utest",
|
||||||
"description": "/bin/utest (0x00400000)",
|
"description": "/bin/utest (0x00400000)",
|
||||||
"ignoreFailures": true
|
"ignoreFailures": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"text": "add-symbol-file ${workspaceFolder}/../initrd_tmp_data/bin/libc_test",
|
"text": "add-symbol-file ${workspaceFolder}/../tmp_rootfs/bin/libc_test",
|
||||||
"description": "/bin/libc_test (0x00600000)",
|
"description": "/bin/libc_test (0x00600000)",
|
||||||
"ignoreFailures": true
|
"ignoreFailures": true
|
||||||
},
|
},
|
||||||
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@ -16,5 +16,6 @@
|
|||||||
"**/tools/qemu/**": true,
|
"**/tools/qemu/**": true,
|
||||||
"**/tools/cross/**": true,
|
"**/tools/cross/**": true,
|
||||||
"**/doxygen-doc/**": true,
|
"**/doxygen-doc/**": true,
|
||||||
}
|
},
|
||||||
|
"cmake.ignoreCMakeListsMissing": true
|
||||||
}
|
}
|
@ -1807,7 +1807,7 @@ typedef enum
|
|||||||
/* Time */
|
/* Time */
|
||||||
|
|
||||||
/** @copydoc SYS_TIME */
|
/** @copydoc SYS_TIME */
|
||||||
#define call_time(t) syscall1(SYS_TIME, t)
|
#define call_time(t) syscall1(SYS_TIME, (scarg)t)
|
||||||
|
|
||||||
/** @copydoc SYS_CLOCK_GETTIME */
|
/** @copydoc SYS_CLOCK_GETTIME */
|
||||||
#define call_clock_gettime(clockid, tp) syscall2(SYS_CLOCK_GETTIME, (scarg)clockid, (scarg)tp)
|
#define call_clock_gettime(clockid, tp) syscall2(SYS_CLOCK_GETTIME, (scarg)clockid, (scarg)tp)
|
||||||
|
@ -130,7 +130,7 @@ namespace KernelConsole
|
|||||||
|
|
||||||
bool SetTheme(std::string Theme)
|
bool SetTheme(std::string Theme)
|
||||||
{
|
{
|
||||||
FileNode *rn = fs->GetByPath("/etc/term", thisProcess->Info.RootNode);
|
FileNode *rn = fs->GetByPath("/sys/cfg/term", thisProcess->Info.RootNode);
|
||||||
if (rn == nullptr)
|
if (rn == nullptr)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
@ -274,7 +274,7 @@ namespace KernelConsole
|
|||||||
|
|
||||||
void LateInit()
|
void LateInit()
|
||||||
{
|
{
|
||||||
FileNode *rn = fs->GetByPath("/etc/term", thisProcess->Info.RootNode);
|
FileNode *rn = fs->GetByPath("/sys/cfg/term", thisProcess->Info.RootNode);
|
||||||
if (rn == nullptr)
|
if (rn == nullptr)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -115,10 +115,10 @@ nsa void DiagnosticDataCollection()
|
|||||||
S_IROTH |
|
S_IROTH |
|
||||||
S_IFDIR;
|
S_IFDIR;
|
||||||
|
|
||||||
FileNode *panicDir = fs->ForceCreate(nullptr, "/var/panic", mode);
|
FileNode *panicDir = fs->ForceCreate(nullptr, "/sys/log/panic", mode);
|
||||||
if (!panicDir)
|
if (!panicDir)
|
||||||
{
|
{
|
||||||
ExPrint("\x1b[0;30;41mFailed to create /var/panic\x1b[0m\n");
|
ExPrint("\x1b[0;30;41mFailed to create /sys/log/panic\x1b[0m\n");
|
||||||
Display->UpdateBuffer();
|
Display->UpdateBuffer();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -145,6 +145,6 @@ nsa void DiagnosticDataCollection()
|
|||||||
if (!WriteDiagDataToNode(dumpFile))
|
if (!WriteDiagDataToNode(dumpFile))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
ExPrint("You can find the diagnostic file in /var/panic/%s\n", filename);
|
ExPrint("You can find the diagnostic file in /sys/log/panic/%s\n", filename);
|
||||||
Display->UpdateBuffer();
|
Display->UpdateBuffer();
|
||||||
}
|
}
|
||||||
|
@ -41,8 +41,8 @@ __aligned(16) BootInfo bInfo{};
|
|||||||
struct KernelConfig Config = {
|
struct KernelConfig Config = {
|
||||||
.AllocatorType = Memory::liballoc11,
|
.AllocatorType = Memory::liballoc11,
|
||||||
.SchedulerType = Multi,
|
.SchedulerType = Multi,
|
||||||
.DriverDirectory = {'/', 'u', 's', 'r', '/', 'l', 'i', 'b', '/', 'd', 'r', 'i', 'v', 'e', 'r', 's', '\0'},
|
.DriverDirectory = {'/', 's', 'y', 's', '/', 'd', 'r', 'v', '\0'},
|
||||||
.InitPath = {'/', 'b', 'i', 'n', '/', 'i', 'n', 'i', 't', '\0'},
|
.InitPath = {'/', 's', 'y', 's', '/', 'b', 'i', 'n', '/', 'i', 'n', 'i', 't', '\0'},
|
||||||
.UseLinuxSyscalls = false,
|
.UseLinuxSyscalls = false,
|
||||||
.InterruptsOnCrash = true,
|
.InterruptsOnCrash = true,
|
||||||
.Cores = 0,
|
.Cores = 0,
|
||||||
|
@ -2133,7 +2133,7 @@ static int linux_uname(SysFrm *, struct utsname *buf)
|
|||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
FileNode *rn = fs->GetByPath("/etc/cross/linux", pcb->Info.RootNode);
|
FileNode *rn = fs->GetByPath("/sys/cfg/cross/linux", pcb->Info.RootNode);
|
||||||
if (rn)
|
if (rn)
|
||||||
{
|
{
|
||||||
struct kstat st
|
struct kstat st
|
||||||
@ -2177,7 +2177,7 @@ static int linux_uname(SysFrm *, struct utsname *buf)
|
|||||||
delete[] sh;
|
delete[] sh;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
warn("Couldn't open /etc/cross/linux");
|
warn("Couldn't open /sys/cfg/cross/linux");
|
||||||
|
|
||||||
memcpy(pBuf, &uname, sizeof(struct utsname));
|
memcpy(pBuf, &uname, sizeof(struct utsname));
|
||||||
return 0;
|
return 0;
|
||||||
|
50
Makefile
50
Makefile
@ -107,9 +107,40 @@ prepare:
|
|||||||
$(MAKE) --quiet -C Drivers prepare
|
$(MAKE) --quiet -C Drivers prepare
|
||||||
$(MAKE) --quiet -C Userspace prepare
|
$(MAKE) --quiet -C Userspace prepare
|
||||||
|
|
||||||
|
MKDIR_ROOTFS = mkdir -p rootfs
|
||||||
|
mkdir_rootfs:
|
||||||
|
$(MKDIR_ROOTFS)/home/root/apps/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/cfg/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/cache/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/trash/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/desktop/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/documents/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/downloads/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/music/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/pictures/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/videos/
|
||||||
|
$(MKDIR_ROOTFS)/home/root/templates/
|
||||||
|
|
||||||
|
$(MKDIR_ROOTFS)/sys/bin/
|
||||||
|
$(MKDIR_ROOTFS)/sys/lib/
|
||||||
|
$(MKDIR_ROOTFS)/sys/drv/
|
||||||
|
$(MKDIR_ROOTFS)/sys/svc/
|
||||||
|
$(MKDIR_ROOTFS)/sys/cfg/
|
||||||
|
$(MKDIR_ROOTFS)/sys/inc/
|
||||||
|
$(MKDIR_ROOTFS)/sys/res/
|
||||||
|
$(MKDIR_ROOTFS)/sys/log/panic/
|
||||||
|
|
||||||
|
$(MKDIR_ROOTFS)/usr/bin/
|
||||||
|
$(MKDIR_ROOTFS)/usr/lib/
|
||||||
|
$(MKDIR_ROOTFS)/usr/share/
|
||||||
|
$(MKDIR_ROOTFS)/usr/include/
|
||||||
|
|
||||||
|
$(MKDIR_ROOTFS)/tmp/
|
||||||
|
|
||||||
setup:
|
setup:
|
||||||
$(MAKE) prepare
|
$(MAKE) prepare
|
||||||
$(MAKE) tools
|
$(MAKE) tools
|
||||||
|
$(MAKE) mkdir_rootfs
|
||||||
|
|
||||||
setup-no-qemu:
|
setup-no-qemu:
|
||||||
$(MAKE) --quiet -C tools ci
|
$(MAKE) --quiet -C tools ci
|
||||||
@ -211,16 +242,21 @@ endif
|
|||||||
|
|
||||||
build_image:
|
build_image:
|
||||||
mkdir -p iso_tmp_data
|
mkdir -p iso_tmp_data
|
||||||
mkdir -p initrd_tmp_data
|
mkdir -p tmp_rootfs
|
||||||
cp -r rootfs/* initrd_tmp_data/
|
cp -r rootfs/* tmp_rootfs/
|
||||||
ifeq ($(BUILD_DRIVERS), 1)
|
ifeq ($(BUILD_DRIVERS), 1)
|
||||||
cp -r Drivers/out/* initrd_tmp_data/usr/lib/drivers/
|
cp -r Drivers/out/* tmp_rootfs/sys/drv/
|
||||||
endif
|
endif
|
||||||
ifeq ($(BUILD_USERSPACE), 1)
|
ifeq ($(BUILD_USERSPACE), 1)
|
||||||
cp -r Userspace/out/* initrd_tmp_data/
|
cp -r Userspace/out/* tmp_rootfs/
|
||||||
endif
|
endif
|
||||||
# tar czf rootfs.tar -C initrd_tmp_data/ ./ --format=ustar
|
chmod -R 755 tmp_rootfs/sys/
|
||||||
tar cf rootfs.tar -C initrd_tmp_data/ ./ --format=ustar
|
chmod -R 755 tmp_rootfs/usr/
|
||||||
|
chmod 755 tmp_rootfs/home/
|
||||||
|
chmod -R 750 tmp_rootfs/home/root/
|
||||||
|
chmod -R 777 tmp_rootfs/tmp/
|
||||||
|
# tar czf rootfs.tar -C tmp_rootfs/ --owner=0 --group=0 ./ --format=ustar
|
||||||
|
tar cf rootfs.tar -C tmp_rootfs/ --owner=0 --group=0 ./ --format=ustar
|
||||||
cp Kernel/fennix.elf rootfs.tar \
|
cp Kernel/fennix.elf rootfs.tar \
|
||||||
iso_tmp_data/
|
iso_tmp_data/
|
||||||
ifeq ($(BOOTLOADER), limine)
|
ifeq ($(BOOTLOADER), limine)
|
||||||
@ -329,7 +365,7 @@ qemubios: qemu_vdisk clean_logs
|
|||||||
run: build qemu
|
run: build qemu
|
||||||
|
|
||||||
clean: clean_logs
|
clean: clean_logs
|
||||||
rm -rf doxygen-doc iso_tmp_data initrd_tmp_data
|
rm -rf doxygen-doc iso_tmp_data tmp_rootfs
|
||||||
rm -f rootfs.tar $(OSNAME).iso $(OSNAME).img
|
rm -f rootfs.tar $(OSNAME).iso $(OSNAME).img
|
||||||
$(MAKE) -C Kernel clean
|
$(MAKE) -C Kernel clean
|
||||||
$(MAKE) -C Userspace clean
|
$(MAKE) -C Userspace clean
|
||||||
|
8
Userspace/.vscode/c_cpp_properties.json
vendored
8
Userspace/.vscode/c_cpp_properties.json
vendored
@ -6,7 +6,7 @@
|
|||||||
"${workspaceFolder}/libc/include/**",
|
"${workspaceFolder}/libc/include/**",
|
||||||
"${workspaceFolder}/coreutils/include/**",
|
"${workspaceFolder}/coreutils/include/**",
|
||||||
"${workspaceFolder}/libs/include/**",
|
"${workspaceFolder}/libs/include/**",
|
||||||
"${workspaceFolder}/out/include/**"
|
"${workspaceFolder}/out/usr/include/**"
|
||||||
],
|
],
|
||||||
"defines": [
|
"defines": [
|
||||||
"__debug_vscode__",
|
"__debug_vscode__",
|
||||||
@ -52,7 +52,7 @@
|
|||||||
"${workspaceFolder}/libc/include/**",
|
"${workspaceFolder}/libc/include/**",
|
||||||
"${workspaceFolder}/coreutils/include/**",
|
"${workspaceFolder}/coreutils/include/**",
|
||||||
"${workspaceFolder}/libs/include/**",
|
"${workspaceFolder}/libs/include/**",
|
||||||
"${workspaceFolder}/out/include/**"
|
"${workspaceFolder}/out/usr/include/**"
|
||||||
],
|
],
|
||||||
"defines": [
|
"defines": [
|
||||||
"__debug_vscode__",
|
"__debug_vscode__",
|
||||||
@ -98,7 +98,7 @@
|
|||||||
"${workspaceFolder}/libc/include/**",
|
"${workspaceFolder}/libc/include/**",
|
||||||
"${workspaceFolder}/coreutils/include/**",
|
"${workspaceFolder}/coreutils/include/**",
|
||||||
"${workspaceFolder}/libs/include/**",
|
"${workspaceFolder}/libs/include/**",
|
||||||
"${workspaceFolder}/out/include/**"
|
"${workspaceFolder}/out/usr/include/**"
|
||||||
],
|
],
|
||||||
"defines": [
|
"defines": [
|
||||||
"__debug_vscode__",
|
"__debug_vscode__",
|
||||||
@ -124,7 +124,7 @@
|
|||||||
"${workspaceFolder}/libc/include/**",
|
"${workspaceFolder}/libc/include/**",
|
||||||
"${workspaceFolder}/coreutils/include/**",
|
"${workspaceFolder}/coreutils/include/**",
|
||||||
"${workspaceFolder}/libs/include/**",
|
"${workspaceFolder}/libs/include/**",
|
||||||
"${workspaceFolder}/out/include/**"
|
"${workspaceFolder}/out/usr/include/**"
|
||||||
],
|
],
|
||||||
"defines": [
|
"defines": [
|
||||||
"__debug_vscode__",
|
"__debug_vscode__",
|
||||||
|
@ -13,7 +13,8 @@ export LDFLAGS := --sysroot=$(WORKSPACE_DIR)/out/ \
|
|||||||
-ggdb3 -O0
|
-ggdb3 -O0
|
||||||
export CFLAGS := \
|
export CFLAGS := \
|
||||||
--sysroot=$(WORKSPACE_DIR)/out/ \
|
--sysroot=$(WORKSPACE_DIR)/out/ \
|
||||||
-I$(WORKSPACE_DIR)/out/include \
|
-I$(WORKSPACE_DIR)/out/sys/inc \
|
||||||
|
-I$(WORKSPACE_DIR)/out/usr/include \
|
||||||
-DDEBUG -ggdb3 -O0 -fdiagnostics-color=always
|
-DDEBUG -ggdb3 -O0 -fdiagnostics-color=always
|
||||||
|
|
||||||
else # DEBUG
|
else # DEBUG
|
||||||
@ -21,22 +22,22 @@ else # DEBUG
|
|||||||
export LDFLAGS := --sysroot=$(WORKSPACE_DIR)/out/
|
export LDFLAGS := --sysroot=$(WORKSPACE_DIR)/out/
|
||||||
export CFLAGS := \
|
export CFLAGS := \
|
||||||
--sysroot=$(WORKSPACE_DIR)/out/ \
|
--sysroot=$(WORKSPACE_DIR)/out/ \
|
||||||
-I$(WORKSPACE_DIR)/out/include
|
-I$(WORKSPACE_DIR)/out/sys/inc \
|
||||||
|
-I$(WORKSPACE_DIR)/out/usr/include
|
||||||
|
|
||||||
endif # DEBUG
|
endif # DEBUG
|
||||||
|
|
||||||
create_out:
|
create_out:
|
||||||
rm -rf out
|
rm -rf out
|
||||||
mkdir -p out
|
mkdir -p out/sys/bin
|
||||||
mkdir -p out/bin
|
mkdir -p out/sys/lib
|
||||||
mkdir -p out/lib
|
mkdir -p out/sys/inc/fennix
|
||||||
mkdir -p out/include/fennix
|
|
||||||
mkdir -p out/usr/bin
|
mkdir -p out/usr/bin
|
||||||
mkdir -p out/usr/lib
|
mkdir -p out/usr/lib
|
||||||
|
mkdir -p out/usr/include
|
||||||
mkdir -p out/usr/share/doc
|
mkdir -p out/usr/share/doc
|
||||||
mkdir -p out/usr/share/info
|
mkdir -p out/usr/share/info
|
||||||
mkdir -p out/usr/include
|
cp $(WORKSPACE_DIR)/../Kernel/include/interface/* $(WORKSPACE_DIR)/out/sys/inc/fennix/
|
||||||
cp $(WORKSPACE_DIR)/../Kernel/include/interface/* $(WORKSPACE_DIR)/out/include/fennix/
|
|
||||||
|
|
||||||
build_coreutils:
|
build_coreutils:
|
||||||
mkdir -p cache/coreutils
|
mkdir -p cache/coreutils
|
||||||
@ -44,8 +45,8 @@ build_coreutils:
|
|||||||
cmake $(WORKSPACE_DIR)/coreutils \
|
cmake $(WORKSPACE_DIR)/coreutils \
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH=$(WORKSPACE_DIR)/out \
|
-DCMAKE_INSTALL_PREFIX:PATH=$(WORKSPACE_DIR)/out \
|
||||||
-DCMAKE_SYSROOT=$(WORKSPACE_DIR)/out \
|
-DCMAKE_SYSROOT=$(WORKSPACE_DIR)/out \
|
||||||
-DCMAKE_C_STANDARD_INCLUDE_DIRECTORIES=$(WORKSPACE_DIR)/out/include \
|
-DCMAKE_C_STANDARD_INCLUDE_DIRECTORIES=$(WORKSPACE_DIR)/out/sys/inc $(WORKSPACE_DIR)/out/usr/include \
|
||||||
-DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=$(WORKSPACE_DIR)/out/include \
|
-DCMAKE_CXX_STANDARD_INCLUDE_DIRECTORIES=$(WORKSPACE_DIR)/out/sys/inc $(WORKSPACE_DIR)/out/usr/include \
|
||||||
&& \
|
&& \
|
||||||
$(MAKE) -j$(shell nproc) && \
|
$(MAKE) -j$(shell nproc) && \
|
||||||
$(MAKE) install
|
$(MAKE) install
|
||||||
@ -63,7 +64,7 @@ build_libc:
|
|||||||
cmake $(WORKSPACE_DIR)/libc \
|
cmake $(WORKSPACE_DIR)/libc \
|
||||||
-DCMAKE_INSTALL_PREFIX:PATH=$(WORKSPACE_DIR)/out \
|
-DCMAKE_INSTALL_PREFIX:PATH=$(WORKSPACE_DIR)/out \
|
||||||
-DCMAKE_SYSROOT=$(WORKSPACE_DIR)/out \
|
-DCMAKE_SYSROOT=$(WORKSPACE_DIR)/out \
|
||||||
-DCMAKE_C_STANDARD_INCLUDE_DIRECTORIES=$(WORKSPACE_DIR)/out/include \
|
-DCMAKE_C_STANDARD_INCLUDE_DIRECTORIES=$(WORKSPACE_DIR)/out/sys/inc $(WORKSPACE_DIR)/out/usr/include \
|
||||||
-DTARGET_OS=fennix \
|
-DTARGET_OS=fennix \
|
||||||
-DTARGET_ARCH=$(OSARCH) \
|
-DTARGET_ARCH=$(OSARCH) \
|
||||||
&& \
|
&& \
|
||||||
|
@ -11,7 +11,7 @@ FILENAME = $(notdir $(shell pwd))
|
|||||||
WARNCFLAG = -Wall -Wextra
|
WARNCFLAG = -Wall -Wextra
|
||||||
|
|
||||||
build: $(FILENAME).elf
|
build: $(FILENAME).elf
|
||||||
cp $(FILENAME).elf $(WORKSPACE_DIR)/out/bin/$(FILENAME)
|
cp $(FILENAME).elf $(WORKSPACE_DIR)/out/sys/bin/$(FILENAME)
|
||||||
|
|
||||||
$(FILENAME).elf: $(OBJ)
|
$(FILENAME).elf: $(OBJ)
|
||||||
$(info Linking $@)
|
$(info Linking $@)
|
||||||
|
@ -65,8 +65,8 @@ int main()
|
|||||||
signal(SIGTERM, HandleSignal);
|
signal(SIGTERM, HandleSignal);
|
||||||
signal(SIGINT, HandleSignal);
|
signal(SIGINT, HandleSignal);
|
||||||
|
|
||||||
char *shellArgs[] = {"/bin/sh", NULL};
|
char *shellArgs[] = {"/sys/bin/sh", NULL};
|
||||||
StartProcess("/bin/sh", shellArgs);
|
StartProcess("/sys/bin/sh", shellArgs);
|
||||||
|
|
||||||
// char *dummyServiceArgs[] = {"/usr/bin/dummy_service", NULL};
|
// char *dummyServiceArgs[] = {"/usr/bin/dummy_service", NULL};
|
||||||
// StartProcess("/usr/bin/dummy_service", dummyServiceArgs);
|
// StartProcess("/usr/bin/dummy_service", dummyServiceArgs);
|
||||||
|
@ -1,33 +0,0 @@
|
|||||||
default:
|
|
||||||
$(error Do not run this Makefile directly!)
|
|
||||||
|
|
||||||
S_SOURCES = $(shell find ./ -type f -name '*.S')
|
|
||||||
C_SOURCES = $(shell find ./ -type f -name '*.c')
|
|
||||||
CXX_SOURCES = $(shell find ./ -type f -name '*.cpp')
|
|
||||||
|
|
||||||
OBJ = $(S_SOURCES:.S=.o) $(C_SOURCES:.c=.o) $(CXX_SOURCES:.cpp=.o)
|
|
||||||
|
|
||||||
FILENAME = $(notdir $(shell pwd))
|
|
||||||
WARNCFLAG = -Wall -Wextra
|
|
||||||
|
|
||||||
build: $(FILENAME).elf
|
|
||||||
cp $(FILENAME).elf $(WORKSPACE_DIR)/out/bin/$(FILENAME)
|
|
||||||
|
|
||||||
$(FILENAME).elf: $(OBJ)
|
|
||||||
$(info Linking $@)
|
|
||||||
$(CC) $(LDFLAGS) $(SYSROOT) $(OBJ) -o $@
|
|
||||||
|
|
||||||
%.o: %.c $(HEADERS)
|
|
||||||
$(info Compiling $<)
|
|
||||||
$(CC) $(CFLAGS) $(WARNCFLAG) -std=c17 -c $< -o $@
|
|
||||||
|
|
||||||
%.o: %.cpp $(HEADERS)
|
|
||||||
$(info Compiling $<)
|
|
||||||
$(CXX) $(CFLAGS) $(WARNCFLAG) -std=c++20 -fexceptions -c $< -o $@ -fno-rtti
|
|
||||||
|
|
||||||
%.o: %.S
|
|
||||||
$(info Compiling $<)
|
|
||||||
$(AS) -o $@ $<
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f $(OBJ) $(FILENAME).elf
|
|
@ -1,114 +0,0 @@
|
|||||||
/*
|
|
||||||
This file is part of Fennix Userspace.
|
|
||||||
|
|
||||||
Fennix Userspace is free software: you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU General Public License as
|
|
||||||
published by the Free Software Foundation, either version 3 of
|
|
||||||
the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
Fennix Userspace is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License
|
|
||||||
along with Fennix Userspace. If not, see <https://www.gnu.org/licenses/>.
|
|
||||||
*/
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <sys/wait.h>
|
|
||||||
#include <signal.h>
|
|
||||||
|
|
||||||
#define MAX_INPUT_SIZE 1024
|
|
||||||
#define MAX_ARG_SIZE 100
|
|
||||||
|
|
||||||
void print_prompt()
|
|
||||||
{
|
|
||||||
printf("$ ");
|
|
||||||
fflush(stdout);
|
|
||||||
}
|
|
||||||
|
|
||||||
void read_input(char *input)
|
|
||||||
{
|
|
||||||
if (fgets(input, MAX_INPUT_SIZE, stdin) == NULL)
|
|
||||||
{
|
|
||||||
perror("fgets");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
input[strcspn(input, "\n")] = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
void parse_input(char *input, char **args)
|
|
||||||
{
|
|
||||||
int i = 0;
|
|
||||||
args[i] = strtok(input, " ");
|
|
||||||
while (args[i] != NULL)
|
|
||||||
{
|
|
||||||
i++;
|
|
||||||
args[i] = strtok(NULL, " ");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void execute_command(char **args)
|
|
||||||
{
|
|
||||||
pid_t pid = fork();
|
|
||||||
if (pid < 0)
|
|
||||||
{
|
|
||||||
perror("fork");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
else if (pid == 0)
|
|
||||||
{
|
|
||||||
if (execvp(args[0], args) < 0)
|
|
||||||
{
|
|
||||||
perror("execvp");
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
int status;
|
|
||||||
waitpid(pid, &status, 0);
|
|
||||||
if (WIFEXITED(status))
|
|
||||||
{
|
|
||||||
printf("Child exited with status %d\n", WEXITSTATUS(status));
|
|
||||||
}
|
|
||||||
else if (WIFSIGNALED(status))
|
|
||||||
{
|
|
||||||
printf("Child terminated by signal %d\n", WTERMSIG(status));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void handle_signal(int sig)
|
|
||||||
{
|
|
||||||
if (sig == SIGINT)
|
|
||||||
{
|
|
||||||
printf("\nCaught signal %d (SIGINT). Type 'exit' to quit the shell.\n", sig);
|
|
||||||
print_prompt();
|
|
||||||
fflush(stdout);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
char input[MAX_INPUT_SIZE];
|
|
||||||
char *args[MAX_ARG_SIZE];
|
|
||||||
|
|
||||||
signal(SIGINT, handle_signal);
|
|
||||||
|
|
||||||
while (1)
|
|
||||||
{
|
|
||||||
print_prompt();
|
|
||||||
read_input(input);
|
|
||||||
if (strcmp(input, "exit") == 0)
|
|
||||||
break;
|
|
||||||
parse_input(input, args);
|
|
||||||
if (args[0] != NULL)
|
|
||||||
execute_command(args);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
@ -13,7 +13,7 @@ ifneq ($(shell uname -s), Linux)
|
|||||||
endif
|
endif
|
||||||
$(info Compiling $(FILENAME)linux)
|
$(info Compiling $(FILENAME)linux)
|
||||||
gcc linux_glibc.c $(CFLAGS) -o $(FILENAME)linux
|
gcc linux_glibc.c $(CFLAGS) -o $(FILENAME)linux
|
||||||
cp $(FILENAME)linux $(WORKSPACE_DIR)/out/bin/$(FILENAME)linux
|
cp $(FILENAME)linux $(WORKSPACE_DIR)/out/sys/bin/$(FILENAME)linux
|
||||||
|
|
||||||
$(FILENAME)win.exe:
|
$(FILENAME)win.exe:
|
||||||
ifneq ($(shell uname -s), Linux)
|
ifneq ($(shell uname -s), Linux)
|
||||||
@ -22,7 +22,7 @@ ifneq ($(shell uname -s), Linux)
|
|||||||
endif
|
endif
|
||||||
$(info Compiling $(FILENAME)win)
|
$(info Compiling $(FILENAME)win)
|
||||||
x86_64-w64-mingw32-gcc win_mingw.c $(CFLAGS) -o $(FILENAME)win.exe
|
x86_64-w64-mingw32-gcc win_mingw.c $(CFLAGS) -o $(FILENAME)win.exe
|
||||||
cp $(FILENAME)win.exe $(WORKSPACE_DIR)/out/bin/$(FILENAME)win.exe
|
cp $(FILENAME)win.exe $(WORKSPACE_DIR)/out/sys/bin/$(FILENAME)win.exe
|
||||||
|
|
||||||
build: $(FILENAME)linux $(FILENAME)win.exe
|
build: $(FILENAME)linux $(FILENAME)win.exe
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ FILENAME = $(notdir $(shell pwd))
|
|||||||
WARNCFLAG = -Wall -Wextra
|
WARNCFLAG = -Wall -Wextra
|
||||||
|
|
||||||
build: $(FILENAME).elf
|
build: $(FILENAME).elf
|
||||||
cp $(FILENAME).elf $(WORKSPACE_DIR)/out/bin/$(FILENAME)
|
cp $(FILENAME).elf $(WORKSPACE_DIR)/out/sys/bin/$(FILENAME)
|
||||||
|
|
||||||
# Use static linking
|
# Use static linking
|
||||||
LDFLAGS += -ggdb3 -g -static -fno-pic -fno-pie -Wl,-static -Wl,-Ttext=0x00600000
|
LDFLAGS += -ggdb3 -g -static -fno-pic -fno-pie -Wl,-static -Wl,-Ttext=0x00600000
|
||||||
|
@ -11,7 +11,7 @@ FILENAME = $(notdir $(shell pwd))
|
|||||||
WARNCFLAG = -Wall -Wextra
|
WARNCFLAG = -Wall -Wextra
|
||||||
|
|
||||||
build: $(FILENAME).elf
|
build: $(FILENAME).elf
|
||||||
cp $(FILENAME).elf $(WORKSPACE_DIR)/out/bin/$(FILENAME)
|
cp $(FILENAME).elf $(WORKSPACE_DIR)/out/sys/bin/$(FILENAME)
|
||||||
|
|
||||||
# Use static linking
|
# Use static linking
|
||||||
LDFLAGS += -static -fno-pic -fno-pie -Wl,-static
|
LDFLAGS += -static -fno-pic -fno-pie -Wl,-static
|
||||||
|
@ -344,7 +344,7 @@ void test_file()
|
|||||||
{
|
{
|
||||||
printf("- Testing file operations\n");
|
printf("- Testing file operations\n");
|
||||||
|
|
||||||
FILE *test = fopen("/etc/passwd", "r");
|
FILE *test = fopen("/sys/cfg/passwd", "r");
|
||||||
if (test == NULL)
|
if (test == NULL)
|
||||||
{
|
{
|
||||||
perror("fopen");
|
perror("fopen");
|
||||||
@ -353,7 +353,7 @@ void test_file()
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
printf("/etc/passwd contents: ");
|
printf("/sys/cfg/passwd contents: ");
|
||||||
char ch;
|
char ch;
|
||||||
while (1)
|
while (1)
|
||||||
{
|
{
|
||||||
@ -373,7 +373,7 @@ void test_stat()
|
|||||||
printf("- Testing stat\n");
|
printf("- Testing stat\n");
|
||||||
|
|
||||||
struct stat st;
|
struct stat st;
|
||||||
if (stat("/etc/passwd", &st) == -1)
|
if (stat("/sys/cfg/passwd", &st) == -1)
|
||||||
{
|
{
|
||||||
perror("stat");
|
perror("stat");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
@ -385,7 +385,7 @@ void test_stat()
|
|||||||
printf("File mode: %o\n", st.st_mode);
|
printf("File mode: %o\n", st.st_mode);
|
||||||
printf("File inode: %ld\n", st.st_ino);
|
printf("File inode: %ld\n", st.st_ino);
|
||||||
|
|
||||||
int fd = open("/etc/passwd", O_RDONLY);
|
int fd = open("/sys/cfg/passwd", O_RDONLY);
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
{
|
{
|
||||||
perror("open");
|
perror("open");
|
||||||
@ -407,7 +407,7 @@ void test_stat()
|
|||||||
printf("File inode: %ld\n", st.st_ino);
|
printf("File inode: %ld\n", st.st_ino);
|
||||||
close(fd);
|
close(fd);
|
||||||
|
|
||||||
if (lstat("/etc/passwd", &st) == -1)
|
if (lstat("/sys/cfg/passwd", &st) == -1)
|
||||||
{
|
{
|
||||||
perror("lstat");
|
perror("lstat");
|
||||||
fflush(stdout);
|
fflush(stdout);
|
||||||
|
@ -31,7 +31,7 @@ foreach(file ${SINGLE_SOURCE})
|
|||||||
PROGRAM_NAME="${name}"
|
PROGRAM_NAME="${name}"
|
||||||
PROGRAM_VERSION="${PROJECT_VERSION}"
|
PROGRAM_VERSION="${PROJECT_VERSION}"
|
||||||
)
|
)
|
||||||
install(TARGETS ${name} DESTINATION bin)
|
install(TARGETS ${name} DESTINATION ${CMAKE_INSTALL_PREFIX}/sys/bin)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
file(GLOB_RECURSE GROUP_SOURCES "src/*/*.c")
|
file(GLOB_RECURSE GROUP_SOURCES "src/*/*.c")
|
||||||
@ -47,14 +47,14 @@ foreach(name IN LISTS GROUP_MAP_)
|
|||||||
PROGRAM_NAME="${name}"
|
PROGRAM_NAME="${name}"
|
||||||
PROGRAM_VERSION="${PROJECT_VERSION}"
|
PROGRAM_VERSION="${PROJECT_VERSION}"
|
||||||
)
|
)
|
||||||
install(TARGETS ${name} DESTINATION bin)
|
install(TARGETS ${name} DESTINATION ${CMAKE_INSTALL_PREFIX}/sys/bin)
|
||||||
endforeach()
|
endforeach()
|
||||||
|
|
||||||
if(UNIX AND TARGET test)
|
if(UNIX AND TARGET test)
|
||||||
install(CODE "execute_process(
|
install(CODE "execute_process(
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
test
|
test
|
||||||
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin/[\"
|
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/sys/bin/[\"
|
||||||
)")
|
)")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -62,6 +62,6 @@ if(UNIX AND TARGET sh)
|
|||||||
install(CODE "execute_process(
|
install(CODE "execute_process(
|
||||||
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
COMMAND ${CMAKE_COMMAND} -E create_symlink
|
||||||
sh
|
sh
|
||||||
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/bin/fsh\"
|
\"\$ENV{DESTDIR}\${CMAKE_INSTALL_PREFIX}/sys/bin/fsh\"
|
||||||
)")
|
)")
|
||||||
endif()
|
endif()
|
||||||
|
@ -7,8 +7,8 @@ if(NOT DEFINED ENV{WORKSPACE_DIR})
|
|||||||
message(STATUS "Compiling standalone")
|
message(STATUS "Compiling standalone")
|
||||||
|
|
||||||
if(NOT DEFINED ENV{CMAKE_INSTALL_PREFIX})
|
if(NOT DEFINED ENV{CMAKE_INSTALL_PREFIX})
|
||||||
set(CMAKE_INSTALL_PREFIX "/usr")
|
set(CMAKE_INSTALL_PREFIX "/")
|
||||||
message(STATUS "Using default install prefix: /usr")
|
message(STATUS "Using default install prefix: /")
|
||||||
else()
|
else()
|
||||||
message(STATUS "Using custom install prefix: $ENV{CMAKE_INSTALL_PREFIX}")
|
message(STATUS "Using custom install prefix: $ENV{CMAKE_INSTALL_PREFIX}")
|
||||||
endif()
|
endif()
|
||||||
@ -18,8 +18,8 @@ else()
|
|||||||
message(STATUS "Compiling within workspace")
|
message(STATUS "Compiling within workspace")
|
||||||
|
|
||||||
if(NOT DEFINED ENV{CMAKE_INSTALL_PREFIX})
|
if(NOT DEFINED ENV{CMAKE_INSTALL_PREFIX})
|
||||||
set(CMAKE_INSTALL_PREFIX "$ENV{WORKSPACE_DIR}/out")
|
set(CMAKE_INSTALL_PREFIX "$ENV{WORKSPACE_DIR}/out/sys")
|
||||||
message(STATUS "Using default install prefix: $ENV{WORKSPACE_DIR}/out")
|
message(STATUS "Using default install prefix: $ENV{WORKSPACE_DIR}/out/sys")
|
||||||
else()
|
else()
|
||||||
message(STATUS "Using custom install prefix: $ENV{CMAKE_INSTALL_PREFIX}")
|
message(STATUS "Using custom install prefix: $ENV{CMAKE_INSTALL_PREFIX}")
|
||||||
endif()
|
endif()
|
||||||
@ -105,18 +105,24 @@ add_subdirectory(interpreter)
|
|||||||
add_subdirectory(src)
|
add_subdirectory(src)
|
||||||
add_subdirectory(libs)
|
add_subdirectory(libs)
|
||||||
|
|
||||||
|
if(DEFINED ENV{WORKSPACE_DIR})
|
||||||
|
set(INC_OUTPUT "inc")
|
||||||
|
else()
|
||||||
|
set(INC_OUTPUT "include")
|
||||||
|
endif()
|
||||||
|
|
||||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
|
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/include/
|
||||||
DESTINATION include
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/${INC_OUTPUT}
|
||||||
FILES_MATCHING
|
FILES_MATCHING
|
||||||
PATTERN "*")
|
PATTERN "*")
|
||||||
|
|
||||||
install(DIRECTORY ${ABIS_GENERIC}/
|
install(DIRECTORY ${ABIS_GENERIC}/
|
||||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/include/
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/${INC_OUTPUT}
|
||||||
FILES_MATCHING
|
FILES_MATCHING
|
||||||
PATTERN "*")
|
PATTERN "*")
|
||||||
|
|
||||||
install(DIRECTORY ${ABIS_PATH}/
|
install(DIRECTORY ${ABIS_PATH}/
|
||||||
DESTINATION ${CMAKE_INSTALL_PREFIX}/include/
|
DESTINATION ${CMAKE_INSTALL_PREFIX}/${INC_OUTPUT}
|
||||||
FILES_MATCHING
|
FILES_MATCHING
|
||||||
PATTERN "*")
|
PATTERN "*")
|
||||||
|
|
||||||
|
@ -26,7 +26,7 @@ extern "C"
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* /etc/passwd
|
* /sys/cfg/passwd
|
||||||
* name:passwd:uid:gid:gecos:dir:shell
|
* name:passwd:uid:gid:gecos:dir:shell
|
||||||
*
|
*
|
||||||
* Example
|
* Example
|
||||||
|
@ -33,7 +33,7 @@ export struct passwd *getpwent(void)
|
|||||||
|
|
||||||
if (pwfile == NULL)
|
if (pwfile == NULL)
|
||||||
{
|
{
|
||||||
pwfile = fopen("/etc/passwd", "r");
|
pwfile = fopen("/sys/cfg/passwd", "r"); /* FIXME: this path should be OS dependent */
|
||||||
if (pwfile == NULL)
|
if (pwfile == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -209,7 +209,7 @@ export int gethostname(char *name, size_t namelen)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
int fd = open("/etc/hostname", O_RDONLY);
|
int fd = open("/sys/cfg/hostname", O_RDONLY); /* FIXME: this path should be OS dependent */
|
||||||
if (fd == -1)
|
if (fd == -1)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
|
@ -1,51 +1,16 @@
|
|||||||
MAKE_TARGETS := build clean
|
MAKE_TARGETS := build clean
|
||||||
DIRECTORIES := $(sort $(filter-out ./include/,$(dir $(wildcard ./*/))))
|
DIRECTORIES := $(sort $(filter-out ./include/,$(dir $(wildcard ./*/))))
|
||||||
|
|
||||||
FFI_VERSION = 3.4.4
|
|
||||||
XML2_VERSION = 2.12.10
|
|
||||||
EXPAT_VERSION = 2.7.0
|
|
||||||
|
|
||||||
FFI_ARCHIVE = /tmp/libffi-$(FFI_VERSION).tar.gz
|
|
||||||
XML2_ARCHIVE = /tmp/libxml2-$(XML2_VERSION).tar.xz
|
|
||||||
EXPAT_ARCHIVE = /tmp/expat-$(EXPAT_VERSION).tar.gz
|
|
||||||
|
|
||||||
.PHONY: $(MAKE_TARGETS) $(DIRECTORIES) prepare
|
.PHONY: $(MAKE_TARGETS) $(DIRECTORIES) prepare
|
||||||
|
|
||||||
build: copy_includes $(DIRECTORIES)
|
build: copy_includes $(DIRECTORIES)
|
||||||
clean: $(DIRECTORIES)
|
clean: $(DIRECTORIES)
|
||||||
|
|
||||||
copy_includes:
|
copy_includes:
|
||||||
cp -a $(CURDIR)/include/. $(WORKSPACE_DIR)/out/include
|
cp -a $(CURDIR)/include/. $(WORKSPACE_DIR)/out/usr/include
|
||||||
|
|
||||||
prepare:
|
prepare:
|
||||||
rm -rf ffi/libffi-src xml2/libxml2-src expat/libexpat-src
|
$(info Nothing to prepare)
|
||||||
|
|
||||||
mkdir -p ffi/libffi-src
|
|
||||||
if [ ! -f $(FFI_ARCHIVE) ]; then \
|
|
||||||
wget https://github.com/libffi/libffi/releases/download/v$(FFI_VERSION)/libffi-$(FFI_VERSION).tar.gz -O $(FFI_ARCHIVE); \
|
|
||||||
fi
|
|
||||||
cd ffi && \
|
|
||||||
tar xf $(FFI_ARCHIVE) && \
|
|
||||||
cp -r libffi-$(FFI_VERSION)/* libffi-src/ && \
|
|
||||||
rm -rf libffi-$(FFI_VERSION)
|
|
||||||
|
|
||||||
mkdir -p xml2/libxml2-src
|
|
||||||
if [ ! -f $(XML2_ARCHIVE) ]; then \
|
|
||||||
wget https://download.gnome.org/sources/libxml2/2.12/libxml2-$(XML2_VERSION).tar.xz -O $(XML2_ARCHIVE); \
|
|
||||||
fi
|
|
||||||
cd xml2 && \
|
|
||||||
tar xf $(XML2_ARCHIVE) && \
|
|
||||||
cp -r libxml2-$(XML2_VERSION)/* libxml2-src/ && \
|
|
||||||
rm -rf libxml2-$(XML2_VERSION)
|
|
||||||
|
|
||||||
mkdir -p expat/libexpat-src
|
|
||||||
if [ ! -f $(EXPAT_ARCHIVE) ]; then \
|
|
||||||
wget https://github.com/libexpat/libexpat/releases/download/R_2_7_0/expat-$(EXPAT_VERSION).tar.gz -O $(EXPAT_ARCHIVE); \
|
|
||||||
fi
|
|
||||||
cd expat && \
|
|
||||||
tar xf $(EXPAT_ARCHIVE) && \
|
|
||||||
cp -r expat-$(EXPAT_VERSION)/* libexpat-src/ && \
|
|
||||||
rm -rf expat-$(EXPAT_VERSION)
|
|
||||||
|
|
||||||
$(DIRECTORIES):
|
$(DIRECTORIES):
|
||||||
$(MAKE) -C $@ $(MAKECMDGOALS)
|
$(MAKE) -C $@ $(MAKECMDGOALS)
|
||||||
|
@ -4,7 +4,7 @@ default:
|
|||||||
DYNAMIC_NAME := lib$(notdir $(shell pwd)).so
|
DYNAMIC_NAME := lib$(notdir $(shell pwd)).so
|
||||||
STATIC_NAME := lib$(notdir $(shell pwd)).a
|
STATIC_NAME := lib$(notdir $(shell pwd)).a
|
||||||
|
|
||||||
OUTPUT_DIR=$(WORKSPACE_DIR)/out/lib/
|
OUTPUT_DIR=$(WORKSPACE_DIR)/out/usr/lib/
|
||||||
SYSROOT = --sysroot=$(WORKSPACE_DIR)/out/
|
SYSROOT = --sysroot=$(WORKSPACE_DIR)/out/
|
||||||
|
|
||||||
S_SOURCES = $(shell find ./ -type f -name '*.S')
|
S_SOURCES = $(shell find ./ -type f -name '*.S')
|
||||||
@ -12,7 +12,7 @@ C_SOURCES = $(shell find ./ -type f -name '*.c')
|
|||||||
CXX_SOURCES = $(shell find ./ -type f -name '*.cpp')
|
CXX_SOURCES = $(shell find ./ -type f -name '*.cpp')
|
||||||
OBJ = ${S_SOURCES:.S=.o} ${C_SOURCES:.c=.o} ${CXX_SOURCES:.cpp=.o}
|
OBJ = ${S_SOURCES:.S=.o} ${C_SOURCES:.c=.o} ${CXX_SOURCES:.cpp=.o}
|
||||||
|
|
||||||
CFLAGS := -fvisibility=hidden -fPIC -I../include -I$(WORKSPACE_DIR)/out/include -DLIBC_GIT_COMMIT='"$(shell git rev-parse HEAD)"'
|
CFLAGS := -fvisibility=hidden -fPIC -I../include -I$(WORKSPACE_DIR)/out/sys/inc -DLIBC_GIT_COMMIT='"$(shell git rev-parse HEAD)"'
|
||||||
|
|
||||||
ifeq ($(DEBUG), 1)
|
ifeq ($(DEBUG), 1)
|
||||||
CFLAGS += -DDEBUG -ggdb3 -O0 -fdiagnostics-color=always
|
CFLAGS += -DDEBUG -ggdb3 -O0 -fdiagnostics-color=always
|
||||||
|
1
Userspace/libs/expat/.gitignore
vendored
1
Userspace/libs/expat/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
libexpat-src
|
|
@ -1,29 +0,0 @@
|
|||||||
build:
|
|
||||||
mkdir -p $(WORKSPACE_DIR)/cache/expat
|
|
||||||
if [ ! -f "$(WORKSPACE_DIR)/cache/expat/.configured" ]; then \
|
|
||||||
cd $(WORKSPACE_DIR)/cache/expat && \
|
|
||||||
$(CURDIR)/libexpat-src/configure \
|
|
||||||
--host=x86_64-none-elf \
|
|
||||||
--prefix=/usr \
|
|
||||||
--libdir=/usr/lib \
|
|
||||||
--enable-static \
|
|
||||||
--disable-shared \
|
|
||||||
--without-docbook \
|
|
||||||
--without-xmlwf \
|
|
||||||
--without-examples \
|
|
||||||
--without-tests \
|
|
||||||
CC="$(CC)" \
|
|
||||||
CXX="$(CXX)" \
|
|
||||||
AR="$(AR)" \
|
|
||||||
CFLAGS="-nostdinc -I$(WORKSPACE_DIR)/out/include" \
|
|
||||||
CXXFLAGS="-nostdinc++ -I$(WORKSPACE_DIR)/out/include" \
|
|
||||||
LDFLAGS="-nostdlib -L$(WORKSPACE_DIR)/out/lib -lc" && \
|
|
||||||
touch .configured; \
|
|
||||||
fi
|
|
||||||
$(MAKE) -C $(WORKSPACE_DIR)/cache/expat -j$(shell nproc)
|
|
||||||
$(MAKE) -C $(WORKSPACE_DIR)/cache/expat install DESTDIR=$(WORKSPACE_DIR)/out
|
|
||||||
cd $(WORKSPACE_DIR)/cache/expat && \
|
|
||||||
./libtool --finish $(WORKSPACE_DIR)/out/usr/lib
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(info Nothing to clean)
|
|
1
Userspace/libs/ffi/.gitignore
vendored
1
Userspace/libs/ffi/.gitignore
vendored
@ -1 +0,0 @@
|
|||||||
libffi-src
|
|
@ -1,27 +0,0 @@
|
|||||||
build:
|
|
||||||
mkdir -p $(WORKSPACE_DIR)/cache/ffi
|
|
||||||
if [ ! -f "$(WORKSPACE_DIR)/cache/ffi/.configured" ]; then \
|
|
||||||
cd $(WORKSPACE_DIR)/cache/ffi && \
|
|
||||||
$(CURDIR)/libffi-src/configure \
|
|
||||||
--host=x86_64-none-elf \
|
|
||||||
--prefix=/usr \
|
|
||||||
--libdir=/usr/lib \
|
|
||||||
--enable-static \
|
|
||||||
--disable-shared \
|
|
||||||
--disable-docs \
|
|
||||||
--disable-multi-os-directory \
|
|
||||||
CC="$(CC)" \
|
|
||||||
CXX="$(CXX)" \
|
|
||||||
AR="$(AR)" \
|
|
||||||
CFLAGS="-nostdinc -I$(WORKSPACE_DIR)/out/include" \
|
|
||||||
CXXFLAGS="-nostdinc++ -I$(WORKSPACE_DIR)/out/include" \
|
|
||||||
LDFLAGS="-nostdlib -L$(WORKSPACE_DIR)/out/lib -lc" && \
|
|
||||||
touch .configured; \
|
|
||||||
fi
|
|
||||||
$(MAKE) -C $(WORKSPACE_DIR)/cache/ffi -j$(shell nproc)
|
|
||||||
$(MAKE) -C $(WORKSPACE_DIR)/cache/ffi install DESTDIR=$(WORKSPACE_DIR)/out
|
|
||||||
cd $(WORKSPACE_DIR)/cache/ffi && \
|
|
||||||
./libtool --finish $(WORKSPACE_DIR)/out/usr/lib
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(info Nothing to clean)
|
|
@ -1,6 +1,6 @@
|
|||||||
NAME=gcc
|
NAME=gcc
|
||||||
OBJECT_NAME=lib$(NAME).a
|
OBJECT_NAME=lib$(NAME).a
|
||||||
OUTPUT_DIR=$(WORKSPACE_DIR)/out/lib/
|
OUTPUT_DIR=$(WORKSPACE_DIR)/out/sys/lib/
|
||||||
CRTBEGIN_PATH = $(shell $(CC) -print-file-name=libgcc.a)
|
CRTBEGIN_PATH = $(shell $(CC) -print-file-name=libgcc.a)
|
||||||
|
|
||||||
build: $(OBJECT_NAME)
|
build: $(OBJECT_NAME)
|
||||||
|
2
Userspace/libs/xml2/.gitignore
vendored
2
Userspace/libs/xml2/.gitignore
vendored
@ -1,2 +0,0 @@
|
|||||||
libxml2-src
|
|
||||||
|
|
@ -1,47 +0,0 @@
|
|||||||
build:
|
|
||||||
mkdir -p $(WORKSPACE_DIR)/cache/xml2
|
|
||||||
if [ ! -f "$(WORKSPACE_DIR)/cache/xml2/.configured" ]; then \
|
|
||||||
cd $(WORKSPACE_DIR)/cache/xml2 && \
|
|
||||||
$(CURDIR)/libxml2-src/configure \
|
|
||||||
--host=x86_64-none-elf \
|
|
||||||
--prefix=/usr \
|
|
||||||
--libdir=/usr/lib \
|
|
||||||
--enable-static \
|
|
||||||
--disable-shared \
|
|
||||||
--without-python \
|
|
||||||
--without-debug \
|
|
||||||
--without-docbook \
|
|
||||||
--without-ftp \
|
|
||||||
--without-http \
|
|
||||||
--without-html \
|
|
||||||
--without-legacy \
|
|
||||||
--without-pattern \
|
|
||||||
--without-push \
|
|
||||||
--without-regexps \
|
|
||||||
--without-sax1 \
|
|
||||||
--without-schemas \
|
|
||||||
--without-schematron \
|
|
||||||
--without-threads \
|
|
||||||
--without-valid \
|
|
||||||
--without-xinclude \
|
|
||||||
--without-xpath \
|
|
||||||
--without-xptr \
|
|
||||||
--without-modules \
|
|
||||||
--without-zlib \
|
|
||||||
--without-lzma \
|
|
||||||
--without-coverage \
|
|
||||||
CC="$(CC)" \
|
|
||||||
CXX="$(CXX)" \
|
|
||||||
AR="$(AR)" \
|
|
||||||
CFLAGS="-nostdinc -I$(WORKSPACE_DIR)/out/include" \
|
|
||||||
CXXFLAGS="-nostdinc++ -I$(WORKSPACE_DIR)/out/include" \
|
|
||||||
LDFLAGS="-nostdlib -L$(WORKSPACE_DIR)/out/lib -lc" && \
|
|
||||||
touch .configured; \
|
|
||||||
fi
|
|
||||||
$(MAKE) -C $(WORKSPACE_DIR)/cache/xml2 -j$(shell nproc)
|
|
||||||
$(MAKE) -C $(WORKSPACE_DIR)/cache/xml2 install DESTDIR=$(WORKSPACE_DIR)/out
|
|
||||||
cd $(WORKSPACE_DIR)/cache/xml2 && \
|
|
||||||
./libtool --finish $(WORKSPACE_DIR)/out/usr/lib
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(info Nothing to clean)
|
|
@ -86,7 +86,6 @@ __patch_cross_gcc: __clone_gcc
|
|||||||
$(info > TOOLS: Running autoconf for gcc/libstdc++-v3)
|
$(info > TOOLS: Running autoconf for gcc/libstdc++-v3)
|
||||||
cd $(GCC_CLONE_PATH)/libstdc++-v3 && autoconf
|
cd $(GCC_CLONE_PATH)/libstdc++-v3 && autoconf
|
||||||
|
|
||||||
|
|
||||||
__patch_cross_qemu: __clone_qemu
|
__patch_cross_qemu: __clone_qemu
|
||||||
$(info > TOOLS: Patching qemu)
|
$(info > TOOLS: Patching qemu)
|
||||||
cd $(QEMU_CLONE_PATH) && git apply $(CURDIR)/qemu.patch
|
cd $(QEMU_CLONE_PATH) && git apply $(CURDIR)/qemu.patch
|
||||||
@ -166,6 +165,10 @@ __do_gcc:
|
|||||||
--enable-static-link \
|
--enable-static-link \
|
||||||
--disable-tls \
|
--disable-tls \
|
||||||
--disable-pie \
|
--disable-pie \
|
||||||
|
--enable-libada \
|
||||||
|
--enable-libgm2 \
|
||||||
|
--enable-libssp \
|
||||||
|
--enable-libstdcxx \
|
||||||
&& \
|
&& \
|
||||||
$(MAKE) --quiet all-gcc -j$(shell nproc) && \
|
$(MAKE) --quiet all-gcc -j$(shell nproc) && \
|
||||||
$(MAKE) --quiet all-target-libgcc -j$(shell nproc) && \
|
$(MAKE) --quiet all-target-libgcc -j$(shell nproc) && \
|
||||||
|
@ -44,7 +44,7 @@ index 6553aac1..39008568 100644
|
|||||||
bpf-*-*)
|
bpf-*-*)
|
||||||
echo "*** Configuration $targ is not fully supported." >&2
|
echo "*** Configuration $targ is not fully supported." >&2
|
||||||
diff --git a/binutils/readelf.c b/binutils/readelf.c
|
diff --git a/binutils/readelf.c b/binutils/readelf.c
|
||||||
index 5d1cf9c3..2606967f 100644
|
index 5d1cf9c3..f09b448f 100644
|
||||||
--- a/binutils/readelf.c
|
--- a/binutils/readelf.c
|
||||||
+++ b/binutils/readelf.c
|
+++ b/binutils/readelf.c
|
||||||
@@ -20909,6 +20909,30 @@ get_gnu_elf_note_type (unsigned e_type)
|
@@ -20909,6 +20909,30 @@ get_gnu_elf_note_type (unsigned e_type)
|
||||||
@ -144,8 +144,8 @@ index 5d1cf9c3..2606967f 100644
|
|||||||
+
|
+
|
||||||
+ case NT_FNX_ARCH:
|
+ case NT_FNX_ARCH:
|
||||||
+ {
|
+ {
|
||||||
+ /* TODO */
|
+ /* TODO */
|
||||||
+ printf (_(" Unimplemented NT_FNX_ARCH note\n"));
|
+ printf (_(" Unimplemented NT_FNX_ARCH note\n"));
|
||||||
+ }
|
+ }
|
||||||
+ break;
|
+ break;
|
||||||
+
|
+
|
||||||
@ -288,10 +288,18 @@ index 6a9833e5..bf4c134d 100644
|
|||||||
eelf_x86_64_sol2.c \
|
eelf_x86_64_sol2.c \
|
||||||
ehppa64linux.c \
|
ehppa64linux.c \
|
||||||
diff --git a/ld/Makefile.in b/ld/Makefile.in
|
diff --git a/ld/Makefile.in b/ld/Makefile.in
|
||||||
index 8639e782..24738803 100644
|
index 8639e782..f82ec216 100644
|
||||||
--- a/ld/Makefile.in
|
--- a/ld/Makefile.in
|
||||||
+++ b/ld/Makefile.in
|
+++ b/ld/Makefile.in
|
||||||
@@ -676,6 +676,7 @@ ALL_EMULATION_SOURCES = \
|
@@ -543,6 +543,7 @@ pdfdir = @pdfdir@
|
||||||
|
prefix = @prefix@
|
||||||
|
program_transform_name = @program_transform_name@
|
||||||
|
psdir = @psdir@
|
||||||
|
+runstatedir = @runstatedir@
|
||||||
|
sbindir = @sbindir@
|
||||||
|
sharedstatedir = @sharedstatedir@
|
||||||
|
srcdir = @srcdir@
|
||||||
|
@@ -676,6 +677,7 @@ ALL_EMULATION_SOURCES = \
|
||||||
earcv2elfx.c \
|
earcv2elfx.c \
|
||||||
earm_wince_pe.c \
|
earm_wince_pe.c \
|
||||||
earmelf.c \
|
earmelf.c \
|
||||||
@ -299,7 +307,7 @@ index 8639e782..24738803 100644
|
|||||||
earmelf_fbsd.c \
|
earmelf_fbsd.c \
|
||||||
earmelf_fuchsia.c \
|
earmelf_fuchsia.c \
|
||||||
earmelf_haiku.c \
|
earmelf_haiku.c \
|
||||||
@@ -790,6 +791,7 @@ ALL_EMULATION_SOURCES = \
|
@@ -790,6 +792,7 @@ ALL_EMULATION_SOURCES = \
|
||||||
eelf_i386.c \
|
eelf_i386.c \
|
||||||
eelf_i386_be.c \
|
eelf_i386_be.c \
|
||||||
eelf_i386_fbsd.c \
|
eelf_i386_fbsd.c \
|
||||||
@ -307,7 +315,7 @@ index 8639e782..24738803 100644
|
|||||||
eelf_i386_haiku.c \
|
eelf_i386_haiku.c \
|
||||||
eelf_i386_ldso.c \
|
eelf_i386_ldso.c \
|
||||||
eelf_i386_sol2.c \
|
eelf_i386_sol2.c \
|
||||||
@@ -893,6 +895,7 @@ ALL_64_EMULATION_SOURCES = \
|
@@ -893,6 +896,7 @@ ALL_64_EMULATION_SOURCES = \
|
||||||
eaarch64elf32.c \
|
eaarch64elf32.c \
|
||||||
eaarch64elf32b.c \
|
eaarch64elf32b.c \
|
||||||
eaarch64elfb.c \
|
eaarch64elfb.c \
|
||||||
@ -315,7 +323,7 @@ index 8639e782..24738803 100644
|
|||||||
eaarch64fbsd.c \
|
eaarch64fbsd.c \
|
||||||
eaarch64fbsdb.c \
|
eaarch64fbsdb.c \
|
||||||
eaarch64haiku.c \
|
eaarch64haiku.c \
|
||||||
@@ -973,6 +976,7 @@ ALL_64_EMULATION_SOURCES = \
|
@@ -973,6 +977,7 @@ ALL_64_EMULATION_SOURCES = \
|
||||||
eelf_x86_64.c \
|
eelf_x86_64.c \
|
||||||
eelf_x86_64_cloudabi.c \
|
eelf_x86_64_cloudabi.c \
|
||||||
eelf_x86_64_fbsd.c \
|
eelf_x86_64_fbsd.c \
|
||||||
@ -323,7 +331,7 @@ index 8639e782..24738803 100644
|
|||||||
eelf_x86_64_haiku.c \
|
eelf_x86_64_haiku.c \
|
||||||
eelf_x86_64_sol2.c \
|
eelf_x86_64_sol2.c \
|
||||||
ehppa64linux.c \
|
ehppa64linux.c \
|
||||||
@@ -1279,6 +1283,7 @@ distclean-compile:
|
@@ -1279,6 +1284,7 @@ distclean-compile:
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64elfb.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsd.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsd.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsdb.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64fbsdb.Po@am__quote@
|
||||||
@ -331,7 +339,7 @@ index 8639e782..24738803 100644
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64haiku.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64haiku.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eaarch64linux32.Po@am__quote@
|
||||||
@@ -1301,6 +1306,7 @@ distclean-compile:
|
@@ -1301,6 +1307,7 @@ distclean-compile:
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm_wince_pe.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earm_wince_pe.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fbsd.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fbsd.Po@am__quote@
|
||||||
@ -339,7 +347,7 @@ index 8639e782..24738803 100644
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fuchsia.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_fuchsia.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_haiku.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_haiku.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/earmelf_linux.Po@am__quote@
|
||||||
@@ -1480,6 +1486,7 @@ distclean-compile:
|
@@ -1480,6 +1487,7 @@ distclean-compile:
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_be.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fbsd.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_fbsd.Po@am__quote@
|
||||||
@ -347,7 +355,7 @@ index 8639e782..24738803 100644
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_haiku.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_haiku.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_ldso.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_ldso.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_sol2.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_i386_sol2.Po@am__quote@
|
||||||
@@ -1490,6 +1497,7 @@ distclean-compile:
|
@@ -1490,6 +1498,7 @@ distclean-compile:
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_cloudabi.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_cloudabi.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fbsd.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_fbsd.Po@am__quote@
|
||||||
@ -356,7 +364,7 @@ index 8639e782..24738803 100644
|
|||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_sol2.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eelf_x86_64_sol2.Po@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300elf.Po@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/eh8300elf.Po@am__quote@
|
||||||
diff --git a/ld/configure.tgt b/ld/configure.tgt
|
diff --git a/ld/configure.tgt b/ld/configure.tgt
|
||||||
index f937f78b..3aa8c738 100644
|
index f937f78b..57858cc8 100644
|
||||||
--- a/ld/configure.tgt
|
--- a/ld/configure.tgt
|
||||||
+++ b/ld/configure.tgt
|
+++ b/ld/configure.tgt
|
||||||
@@ -92,6 +92,9 @@ aarch64-*-elf | aarch64-*-rtems* | aarch64-*-genode*)
|
@@ -92,6 +92,9 @@ aarch64-*-elf | aarch64-*-rtems* | aarch64-*-genode*)
|
||||||
@ -407,7 +415,7 @@ index f937f78b..3aa8c738 100644
|
|||||||
;;
|
;;
|
||||||
|
|
||||||
+*-*-fennix*)
|
+*-*-fennix*)
|
||||||
+ NATIVE_LIB_DIRS='/lib /usr/lib'
|
+ NATIVE_LIB_DIRS='/sys/lib /usr/lib'
|
||||||
+ ;;
|
+ ;;
|
||||||
+
|
+
|
||||||
*-*-freebsd*)
|
*-*-freebsd*)
|
||||||
|
696
tools/gcc.patch
696
tools/gcc.patch
@ -21,25 +21,26 @@ index 38f3d037a..e15a98ae9 100755
|
|||||||
# This one is extra strict with allowed versions
|
# This one is extra strict with allowed versions
|
||||||
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
|
sco3.2v2 | sco3.2v[4-9]* | sco5v6*)
|
||||||
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
diff --git a/gcc/config.gcc b/gcc/config.gcc
|
||||||
index 95c91ee02..cbcaac06b 100644
|
index 95c91ee02..c887980e0 100644
|
||||||
--- a/gcc/config.gcc
|
--- a/gcc/config.gcc
|
||||||
+++ b/gcc/config.gcc
|
+++ b/gcc/config.gcc
|
||||||
@@ -825,6 +825,14 @@ case ${target} in
|
@@ -825,6 +825,15 @@ case ${target} in
|
||||||
rust_target_objs="${rust_target_objs} dragonfly-rust.o"
|
rust_target_objs="${rust_target_objs} dragonfly-rust.o"
|
||||||
target_has_targetrustm=yes
|
target_has_targetrustm=yes
|
||||||
;;
|
;;
|
||||||
+*-*-fennix*)
|
+*-*-fennix*)
|
||||||
|
+ extra_options="$extra_options gnu-user.opt"
|
||||||
+ tmake_file="t-fennix "
|
+ tmake_file="t-fennix "
|
||||||
+ gas=yes
|
+ gas=yes
|
||||||
+ gnu_ld=yes
|
+ gnu_ld=yes
|
||||||
+ default_use_cxa_atexit=yes
|
+ default_use_cxa_atexit=yes
|
||||||
+ use_gcc_stdint=provide
|
+ use_gcc_stdint=provide
|
||||||
+ native_system_header_dir=/include
|
+ native_system_header_dir=/usr/include
|
||||||
+ ;;
|
+ ;;
|
||||||
*-*-freebsd*)
|
*-*-freebsd*)
|
||||||
# This is the generic ELF configuration of FreeBSD. Later
|
# This is the generic ELF configuration of FreeBSD. Later
|
||||||
# machine-specific sections may refine and add to this
|
# machine-specific sections may refine and add to this
|
||||||
@@ -1227,6 +1235,16 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
|
@@ -1227,6 +1236,16 @@ aarch64*-*-elf | aarch64*-*-fuchsia* | aarch64*-*-rtems*)
|
||||||
done
|
done
|
||||||
TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
|
TM_MULTILIB_CONFIG=`echo $TM_MULTILIB_CONFIG | sed 's/^,//'`
|
||||||
;;
|
;;
|
||||||
@ -56,7 +57,7 @@ index 95c91ee02..cbcaac06b 100644
|
|||||||
aarch64*-*-freebsd*)
|
aarch64*-*-freebsd*)
|
||||||
tm_file="${tm_file} elfos.h ${fbsd_tm_file}"
|
tm_file="${tm_file} elfos.h ${fbsd_tm_file}"
|
||||||
tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
|
tm_file="${tm_file} aarch64/aarch64-elf.h aarch64/aarch64-errata.h aarch64/aarch64-freebsd.h"
|
||||||
@@ -1358,6 +1376,30 @@ arm-wrs-vxworks7*)
|
@@ -1358,6 +1377,30 @@ arm-wrs-vxworks7*)
|
||||||
target_cpu_cname="generic-armv7-a"
|
target_cpu_cname="generic-armv7-a"
|
||||||
need_64bit_hwint=yes
|
need_64bit_hwint=yes
|
||||||
;;
|
;;
|
||||||
@ -87,7 +88,7 @@ index 95c91ee02..cbcaac06b 100644
|
|||||||
arm*-*-freebsd*) # ARM FreeBSD EABI
|
arm*-*-freebsd*) # ARM FreeBSD EABI
|
||||||
tm_file="elfos.h ${fbsd_tm_file} arm/elf.h"
|
tm_file="elfos.h ${fbsd_tm_file} arm/elf.h"
|
||||||
case $target in
|
case $target in
|
||||||
@@ -1953,6 +1995,14 @@ x86_64-*-dragonfly*)
|
@@ -1953,6 +1996,14 @@ x86_64-*-dragonfly*)
|
||||||
tm_file="${tm_file} i386/unix.h i386/att.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
|
tm_file="${tm_file} i386/unix.h i386/att.h elfos.h dragonfly.h dragonfly-stdint.h i386/x86-64.h i386/dragonfly.h"
|
||||||
tmake_file="${tmake_file} i386/t-crtstuff"
|
tmake_file="${tmake_file} i386/t-crtstuff"
|
||||||
;;
|
;;
|
||||||
@ -183,10 +184,10 @@ index 000000000..f93866693
|
|||||||
+# <http://www.gnu.org/licenses/>.
|
+# <http://www.gnu.org/licenses/>.
|
||||||
diff --git a/gcc/config/fennix.h b/gcc/config/fennix.h
|
diff --git a/gcc/config/fennix.h b/gcc/config/fennix.h
|
||||||
new file mode 100644
|
new file mode 100644
|
||||||
index 000000000..4cd35f5a0
|
index 000000000..136b89d25
|
||||||
--- /dev/null
|
--- /dev/null
|
||||||
+++ b/gcc/config/fennix.h
|
+++ b/gcc/config/fennix.h
|
||||||
@@ -0,0 +1,77 @@
|
@@ -0,0 +1,83 @@
|
||||||
+/* Base configuration file for all Fennix targets.
|
+/* Base configuration file for all Fennix targets.
|
||||||
+ Copyright (C) 2016-2024 Free Software Foundation, Inc.
|
+ Copyright (C) 2016-2024 Free Software Foundation, Inc.
|
||||||
+
|
+
|
||||||
@ -235,8 +236,14 @@ index 000000000..4cd35f5a0
|
|||||||
+ } \
|
+ } \
|
||||||
+ %{static:crtend.o%s}"
|
+ %{static:crtend.o%s}"
|
||||||
+
|
+
|
||||||
+#undef STANDARD_STARTFILE_PREFIX
|
+// #undef STANDARD_STARTFILE_PREFIX
|
||||||
+#define STANDARD_STARTFILE_PREFIX "/lib/"
|
+// #define STANDARD_STARTFILE_PREFIX "/lib/"
|
||||||
|
+
|
||||||
|
+#undef STANDARD_STARTFILE_PREFIX_1
|
||||||
|
+#define STANDARD_STARTFILE_PREFIX_1 "/sys/lib/"
|
||||||
|
+
|
||||||
|
+#undef STANDARD_STARTFILE_PREFIX_2
|
||||||
|
+#define STANDARD_STARTFILE_PREFIX_2 "/usr/lib/"
|
||||||
+
|
+
|
||||||
+#undef LINK_SPEC
|
+#undef LINK_SPEC
|
||||||
+#define LINK_SPEC \
|
+#define LINK_SPEC \
|
||||||
@ -249,7 +256,7 @@ index 000000000..4cd35f5a0
|
|||||||
+ } \
|
+ } \
|
||||||
+ %{!static: \
|
+ %{!static: \
|
||||||
+ %{!dynamic-linker: \
|
+ %{!dynamic-linker: \
|
||||||
+ -dynamic-linker=/lib/ld.so \
|
+ -dynamic-linker=/sys/lib/ld.so \
|
||||||
+ } \
|
+ } \
|
||||||
+ } \
|
+ } \
|
||||||
+ -z max-page-size=4096"
|
+ -z max-page-size=4096"
|
||||||
@ -342,220 +349,198 @@ index e75a7af64..10d8017b0 100644
|
|||||||
tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
|
tmake_file="${tmake_file} i386/t-freebsd i386/t-crtstuff"
|
||||||
md_unwind_header=i386/freebsd-unwind.h
|
md_unwind_header=i386/freebsd-unwind.h
|
||||||
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
|
diff --git a/libstdc++-v3/configure b/libstdc++-v3/configure
|
||||||
index 21abaeb07..8dcc519be 100755
|
index 21abaeb07..fdafb5656 100755
|
||||||
--- a/libstdc++-v3/configure
|
--- a/libstdc++-v3/configure
|
||||||
+++ b/libstdc++-v3/configure
|
+++ b/libstdc++-v3/configure
|
||||||
@@ -38122,6 +38122,3224 @@ done
|
@@ -893,6 +893,7 @@ infodir
|
||||||
|
docdir
|
||||||
|
oldincludedir
|
||||||
|
includedir
|
||||||
|
+runstatedir
|
||||||
|
localstatedir
|
||||||
|
sharedstatedir
|
||||||
|
sysconfdir
|
||||||
|
@@ -1027,6 +1028,7 @@ datadir='${datarootdir}'
|
||||||
|
sysconfdir='${prefix}/etc'
|
||||||
|
sharedstatedir='${prefix}/com'
|
||||||
|
localstatedir='${prefix}/var'
|
||||||
|
+runstatedir='${localstatedir}/run'
|
||||||
|
includedir='${prefix}/include'
|
||||||
|
oldincludedir='/usr/include'
|
||||||
|
docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'
|
||||||
|
@@ -1279,6 +1281,15 @@ do
|
||||||
|
| -silent | --silent | --silen | --sile | --sil)
|
||||||
|
silent=yes ;;
|
||||||
|
|
||||||
;;
|
+ -runstatedir | --runstatedir | --runstatedi | --runstated \
|
||||||
|
+ | --runstate | --runstat | --runsta | --runst | --runs \
|
||||||
|
+ | --run | --ru | --r)
|
||||||
|
+ ac_prev=runstatedir ;;
|
||||||
|
+ -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
|
||||||
|
+ | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
|
||||||
|
+ | --run=* | --ru=* | --r=*)
|
||||||
|
+ runstatedir=$ac_optarg ;;
|
||||||
|
+
|
||||||
|
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
|
||||||
|
ac_prev=sbindir ;;
|
||||||
|
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
|
||||||
|
@@ -1416,7 +1427,7 @@ fi
|
||||||
|
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
|
||||||
|
datadir sysconfdir sharedstatedir localstatedir includedir \
|
||||||
|
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
|
||||||
|
- libdir localedir mandir
|
||||||
|
+ libdir localedir mandir runstatedir
|
||||||
|
do
|
||||||
|
eval ac_val=\$$ac_var
|
||||||
|
# Remove trailing slashes.
|
||||||
|
@@ -1569,6 +1580,7 @@ Fine tuning of the installation directories:
|
||||||
|
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
|
||||||
|
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
|
||||||
|
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
|
||||||
|
+ --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
|
||||||
|
--libdir=DIR object code libraries [EPREFIX/lib]
|
||||||
|
--includedir=DIR C header files [PREFIX/include]
|
||||||
|
--oldincludedir=DIR C header files for non-gcc [/usr/include]
|
||||||
|
@@ -5080,7 +5092,7 @@ else
|
||||||
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
|
since some C++ compilers masquerading as C compilers
|
||||||
|
incorrectly reject 9223372036854775807. */
|
||||||
|
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||||
|
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||||
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
|
? 1 : -1];
|
||||||
|
@@ -5126,7 +5138,7 @@ else
|
||||||
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
|
since some C++ compilers masquerading as C compilers
|
||||||
|
incorrectly reject 9223372036854775807. */
|
||||||
|
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||||
|
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||||
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
|
? 1 : -1];
|
||||||
|
@@ -5150,7 +5162,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
|
since some C++ compilers masquerading as C compilers
|
||||||
|
incorrectly reject 9223372036854775807. */
|
||||||
|
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||||
|
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||||
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
|
? 1 : -1];
|
||||||
|
@@ -5195,7 +5207,7 @@ else
|
||||||
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
|
since some C++ compilers masquerading as C compilers
|
||||||
|
incorrectly reject 9223372036854775807. */
|
||||||
|
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||||
|
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||||
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
|
? 1 : -1];
|
||||||
|
@@ -5219,7 +5231,7 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
We can't simply define LARGE_OFF_T to be 9223372036854775807,
|
||||||
|
since some C++ compilers masquerading as C compilers
|
||||||
|
incorrectly reject 9223372036854775807. */
|
||||||
|
-#define LARGE_OFF_T (((off_t) 1 << 62) - 1 + ((off_t) 1 << 62))
|
||||||
|
+#define LARGE_OFF_T ((((off_t) 1 << 31) << 31) - 1 + (((off_t) 1 << 31) << 31))
|
||||||
|
int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721
|
||||||
|
&& LARGE_OFF_T % 2147483647 == 1)
|
||||||
|
? 1 : -1];
|
||||||
|
@@ -12280,7 +12292,7 @@ else
|
||||||
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
|
lt_status=$lt_dlunknown
|
||||||
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
|
-#line 12283 "configure"
|
||||||
|
+#line 12295 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
|
||||||
+ *-fennix*)
|
#if HAVE_DLFCN_H
|
||||||
|
@@ -12386,7 +12398,7 @@ else
|
||||||
|
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
|
||||||
|
lt_status=$lt_dlunknown
|
||||||
|
cat > conftest.$ac_ext <<_LT_EOF
|
||||||
|
-#line 12389 "configure"
|
||||||
|
+#line 12401 "configure"
|
||||||
|
#include "confdefs.h"
|
||||||
|
|
||||||
|
#if HAVE_DLFCN_H
|
||||||
|
@@ -16182,7 +16194,7 @@ $as_echo "$glibcxx_cv_atomic_long_long" >&6; }
|
||||||
|
# Fake what AC_TRY_COMPILE does.
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext << EOF
|
||||||
|
-#line 16185 "configure"
|
||||||
|
+#line 16197 "configure"
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
typedef bool atomic_type;
|
||||||
|
@@ -16217,7 +16229,7 @@ $as_echo "$glibcxx_cv_atomic_bool" >&6; }
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext << EOF
|
||||||
|
-#line 16220 "configure"
|
||||||
|
+#line 16232 "configure"
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
typedef short atomic_type;
|
||||||
|
@@ -16252,7 +16264,7 @@ $as_echo "$glibcxx_cv_atomic_short" >&6; }
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext << EOF
|
||||||
|
-#line 16255 "configure"
|
||||||
|
+#line 16267 "configure"
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
// NB: _Atomic_word not necessarily int.
|
||||||
|
@@ -16288,7 +16300,7 @@ $as_echo "$glibcxx_cv_atomic_int" >&6; }
|
||||||
|
rm -f conftest*
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext << EOF
|
||||||
|
-#line 16291 "configure"
|
||||||
|
+#line 16303 "configure"
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
typedef long long atomic_type;
|
||||||
|
@@ -16444,7 +16456,7 @@ $as_echo "mutex" >&6; }
|
||||||
|
# unnecessary for this test.
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext << EOF
|
||||||
|
-#line 16447 "configure"
|
||||||
|
+#line 16459 "configure"
|
||||||
|
int main()
|
||||||
|
{
|
||||||
|
_Decimal32 d1;
|
||||||
|
@@ -16486,7 +16498,7 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
# unnecessary for this test.
|
||||||
|
|
||||||
|
cat > conftest.$ac_ext << EOF
|
||||||
|
-#line 16489 "configure"
|
||||||
|
+#line 16501 "configure"
|
||||||
|
template<typename T1, typename T2>
|
||||||
|
struct same
|
||||||
|
{ typedef T2 type; };
|
||||||
|
@@ -35067,24 +35079,3268 @@ done
|
||||||
|
|
||||||
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||||
|
|
||||||
|
- $as_echo "#define _GLIBCXX_USE_DEV_RANDOM 1" >>confdefs.h
|
||||||
|
+ $as_echo "#define _GLIBCXX_USE_DEV_RANDOM 1" >>confdefs.h
|
||||||
+
|
+
|
||||||
+ # All these tests are for C++; save the language and the compiler flags.
|
+ $as_echo "#define _GLIBCXX_USE_RANDOM_TR1 1" >>confdefs.h
|
||||||
+ # The CXXFLAGS thing is suspicious, but based on similar bits previously
|
|
||||||
+ # found in GLIBCXX_CONFIGURE.
|
|
||||||
+
|
+
|
||||||
+ ac_ext=cpp
|
+ # We don't yet support AIX's TLS ABI.
|
||||||
+ac_cpp='$CXXCPP $CPPFLAGS'
|
+ #GCC_CHECK_TLS
|
||||||
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
|
||||||
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
|
||||||
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
|
||||||
+
|
|
||||||
+ ac_test_CXXFLAGS="${CXXFLAGS+set}"
|
|
||||||
+ ac_save_CXXFLAGS="$CXXFLAGS"
|
|
||||||
+
|
|
||||||
+ # Check for -ffunction-sections -fdata-sections
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
|
|
||||||
+$as_echo_n "checking for g++ that supports -ffunction-sections -fdata-sections... " >&6; }
|
|
||||||
+ CXXFLAGS='-g -Werror -ffunction-sections -fdata-sections'
|
|
||||||
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
+/* end confdefs.h. */
|
|
||||||
+int foo; void bar() { };
|
|
||||||
+int
|
|
||||||
+main ()
|
|
||||||
+{
|
|
||||||
+
|
|
||||||
+ ;
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+_ACEOF
|
|
||||||
+if ac_fn_cxx_try_compile "$LINENO"; then :
|
|
||||||
+ ac_fdsections=yes
|
|
||||||
+else
|
|
||||||
+ ac_fdsections=no
|
|
||||||
+fi
|
|
||||||
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
|
||||||
+ if test "$ac_test_CXXFLAGS" = set; then
|
|
||||||
+ CXXFLAGS="$ac_save_CXXFLAGS"
|
|
||||||
+ else
|
|
||||||
+ # this is the suspicious part
|
|
||||||
+ CXXFLAGS=''
|
|
||||||
+ fi
|
|
||||||
+ if test x"$ac_fdsections" = x"yes"; then
|
|
||||||
+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
|
|
||||||
+ fi
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_fdsections" >&5
|
|
||||||
+$as_echo "$ac_fdsections" >&6; }
|
|
||||||
+
|
|
||||||
+ ac_ext=c
|
|
||||||
+ac_cpp='$CPP $CPPFLAGS'
|
|
||||||
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
|
||||||
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
|
||||||
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
|
||||||
+
|
+
|
||||||
+
|
+
|
||||||
|
+ $as_echo "#define HAVE_USELOCALE 1" >>confdefs.h
|
||||||
+
|
+
|
||||||
|
+ ;;
|
||||||
+
|
+
|
||||||
+ # If we're not using GNU ld, then there's no point in even trying these
|
+ *-darwin*)
|
||||||
+ # tests. Check for that first. We should have already tested for gld
|
+ # Darwin versions vary, but the linker should work in a cross environment,
|
||||||
+ # by now (in libtool), but require it now just to be safe...
|
+ # so we just check for all the features here.
|
||||||
+ test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''
|
+ # Check for available headers.
|
||||||
+ test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+ # The name set by libtool depends on the version of libtool. Shame on us
|
|
||||||
+ # for depending on an impl detail, but c'est la vie. Older versions used
|
|
||||||
+ # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on
|
|
||||||
+ # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually
|
|
||||||
+ # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't
|
|
||||||
+ # set (hence we're using an older libtool), then set it.
|
|
||||||
+ if test x${with_gnu_ld+set} != xset; then
|
|
||||||
+ if test x${ac_cv_prog_gnu_ld+set} != xset; then
|
|
||||||
+ # We got through "ac_require(ac_prog_ld)" and still not set? Huh?
|
|
||||||
+ with_gnu_ld=no
|
|
||||||
+ else
|
|
||||||
+ with_gnu_ld=$ac_cv_prog_gnu_ld
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ # Start by getting the version number. I think the libtool test already
|
|
||||||
+ # does some of this, but throws away the result.
|
|
||||||
+ glibcxx_ld_is_gold=no
|
|
||||||
+ glibcxx_ld_is_mold=no
|
|
||||||
+ if test x"$with_gnu_ld" = x"yes"; then
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld version" >&5
|
|
||||||
+$as_echo_n "checking for ld version... " >&6; }
|
|
||||||
+
|
|
||||||
+ if $LD --version 2>/dev/null | grep 'GNU gold' >/dev/null 2>&1; then
|
|
||||||
+ glibcxx_ld_is_gold=yes
|
|
||||||
+ elif $LD --version 2>/dev/null | grep 'mold' >/dev/null 2>&1; then
|
|
||||||
+ glibcxx_ld_is_mold=yes
|
|
||||||
+ fi
|
|
||||||
+ ldver=`$LD --version 2>/dev/null |
|
|
||||||
+ sed -e 's/[. ][0-9]\{8\}$//;s/.* \([^ ]\{1,\}\)$/\1/; q'`
|
|
||||||
+
|
|
||||||
+ glibcxx_gnu_ld_version=`echo $ldver | \
|
|
||||||
+ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_gnu_ld_version" >&5
|
|
||||||
+$as_echo "$glibcxx_gnu_ld_version" >&6; }
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ # Set --gc-sections.
|
|
||||||
+ glibcxx_have_gc_sections=no
|
|
||||||
+ if test "$glibcxx_ld_is_gold" = "yes" || test "$glibcxx_ld_is_mold" = "yes" ; then
|
|
||||||
+ if $LD --help 2>/dev/null | grep gc-sections >/dev/null 2>&1; then
|
|
||||||
+ glibcxx_have_gc_sections=yes
|
|
||||||
+ fi
|
|
||||||
+ else
|
|
||||||
+ glibcxx_gcsections_min_ld=21602
|
|
||||||
+ if test x"$with_gnu_ld" = x"yes" &&
|
|
||||||
+ test $glibcxx_gnu_ld_version -gt $glibcxx_gcsections_min_ld ; then
|
|
||||||
+ glibcxx_have_gc_sections=yes
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+ if test "$glibcxx_have_gc_sections" = "yes"; then
|
|
||||||
+ # Sufficiently young GNU ld it is! Joy and bunny rabbits!
|
|
||||||
+ # NB: This flag only works reliably after 2.16.1. Configure tests
|
|
||||||
+ # for this are difficult, so hard wire a value that should work.
|
|
||||||
+
|
|
||||||
+ ac_test_CFLAGS="${CFLAGS+set}"
|
|
||||||
+ ac_save_CFLAGS="$CFLAGS"
|
|
||||||
+ CFLAGS='-Wl,--gc-sections'
|
|
||||||
+
|
|
||||||
+ # Check for -Wl,--gc-sections
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,--gc-sections" >&5
|
|
||||||
+$as_echo_n "checking for ld that supports -Wl,--gc-sections... " >&6; }
|
|
||||||
+ if test x$gcc_no_link = xyes; then
|
|
||||||
+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
|
|
||||||
+fi
|
|
||||||
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
+/* end confdefs.h. */
|
|
||||||
+ int one(void) { return 1; }
|
|
||||||
+ int two(void) { return 2; }
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main ()
|
|
||||||
+{
|
|
||||||
+ two();
|
|
||||||
+ ;
|
|
||||||
+ return 0;
|
|
||||||
+}
|
|
||||||
+_ACEOF
|
|
||||||
+if ac_fn_c_try_link "$LINENO"; then :
|
|
||||||
+ ac_gcsections=yes
|
|
||||||
+else
|
|
||||||
+ ac_gcsections=no
|
|
||||||
+fi
|
|
||||||
+rm -f core conftest.err conftest.$ac_objext \
|
|
||||||
+ conftest$ac_exeext conftest.$ac_ext
|
|
||||||
+ if test "$ac_gcsections" = "yes"; then
|
|
||||||
+ rm -f conftest.c
|
|
||||||
+ touch conftest.c
|
|
||||||
+ if $CC -c conftest.c; then
|
|
||||||
+ if $LD --gc-sections -o conftest conftest.o 2>&1 | \
|
|
||||||
+ grep "Warning: gc-sections option ignored" > /dev/null; then
|
|
||||||
+ ac_gcsections=no
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+ rm -f conftest.c conftest.o conftest
|
|
||||||
+ fi
|
|
||||||
+ if test "$ac_gcsections" = "yes"; then
|
|
||||||
+ SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
|
|
||||||
+ fi
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
|
|
||||||
+$as_echo "$ac_gcsections" >&6; }
|
|
||||||
+
|
|
||||||
+ if test "$ac_test_CFLAGS" = set; then
|
|
||||||
+ CFLAGS="$ac_save_CFLAGS"
|
|
||||||
+ else
|
|
||||||
+ # this is the suspicious part
|
|
||||||
+ CFLAGS=''
|
|
||||||
+ fi
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ # Set -z,relro.
|
|
||||||
+ # Note this is only for shared objects.
|
|
||||||
+ ac_ld_relro=no
|
|
||||||
+ if test x"$with_gnu_ld" = x"yes"; then
|
|
||||||
+ # cygwin and mingw uses PE, which has no ELF relro support,
|
|
||||||
+ # multi target ld may confuse configure machinery
|
|
||||||
+ case "$host" in
|
|
||||||
+ *-*-cygwin*)
|
|
||||||
+ ;;
|
|
||||||
+ *-*-mingw*)
|
|
||||||
+ ;;
|
|
||||||
+ *)
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,-z,relro" >&5
|
|
||||||
+$as_echo_n "checking for ld that supports -Wl,-z,relro... " >&6; }
|
|
||||||
+ cxx_z_relo=`$LD -v --help 2>/dev/null | grep "z relro"`
|
|
||||||
+ if test -n "$cxx_z_relo"; then
|
|
||||||
+ OPT_LDFLAGS="-Wl,-z,relro"
|
|
||||||
+ ac_ld_relro=yes
|
|
||||||
+ fi
|
|
||||||
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ld_relro" >&5
|
|
||||||
+$as_echo "$ac_ld_relro" >&6; }
|
|
||||||
+ esac
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+ # Set linker optimization flags.
|
|
||||||
+ if test x"$with_gnu_ld" = x"yes"; then
|
|
||||||
+ OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
|
|
||||||
+ fi
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
|
||||||
+
|
+
|
||||||
|
+ # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
|
||||||
+
|
+
|
||||||
+ ac_test_CXXFLAGS="${CXXFLAGS+set}"
|
+ ac_test_CXXFLAGS="${CXXFLAGS+set}"
|
||||||
+ ac_save_CXXFLAGS="$CXXFLAGS"
|
+ ac_save_CXXFLAGS="$CXXFLAGS"
|
||||||
@ -3565,11 +3550,286 @@ index 21abaeb07..8dcc519be 100755
|
|||||||
+
|
+
|
||||||
+ CXXFLAGS="$ac_save_CXXFLAGS"
|
+ CXXFLAGS="$ac_save_CXXFLAGS"
|
||||||
+
|
+
|
||||||
+ ;;
|
|
||||||
+
|
|
||||||
*-freebsd*)
|
|
||||||
SECTION_FLAGS='-ffunction-sections -fdata-sections'
|
|
||||||
|
|
||||||
|
- $as_echo "#define _GLIBCXX_USE_RANDOM_TR1 1" >>confdefs.h
|
||||||
|
+ for ac_func in uselocale
|
||||||
|
+do :
|
||||||
|
+ ac_fn_c_check_func "$LINENO" "uselocale" "ac_cv_func_uselocale"
|
||||||
|
+if test "x$ac_cv_func_uselocale" = xyes; then :
|
||||||
|
+ cat >>confdefs.h <<_ACEOF
|
||||||
|
+#define HAVE_USELOCALE 1
|
||||||
|
+_ACEOF
|
||||||
|
|
||||||
|
- # We don't yet support AIX's TLS ABI.
|
||||||
|
- #GCC_CHECK_TLS
|
||||||
|
+fi
|
||||||
|
+done
|
||||||
|
|
||||||
|
+ ;;
|
||||||
|
|
||||||
|
- $as_echo "#define HAVE_USELOCALE 1" >>confdefs.h
|
||||||
|
+ *djgpp)
|
||||||
|
+ # GLIBCXX_CHECK_MATH_SUPPORT
|
||||||
|
+ $as_echo "#define HAVE_ISINF 1" >>confdefs.h
|
||||||
|
+
|
||||||
|
+ $as_echo "#define HAVE_ISNAN 1" >>confdefs.h
|
||||||
|
+
|
||||||
|
+ $as_echo "#define HAVE_FINITE 1" >>confdefs.h
|
||||||
|
+
|
||||||
|
+ $as_echo "#define HAVE_SINCOS 1" >>confdefs.h
|
||||||
|
+
|
||||||
|
+ $as_echo "#define HAVE_HYPOT 1" >>confdefs.h
|
||||||
|
|
||||||
|
;;
|
||||||
|
|
||||||
|
- *-darwin*)
|
||||||
|
- # Darwin versions vary, but the linker should work in a cross environment,
|
||||||
|
- # so we just check for all the features here.
|
||||||
|
- # Check for available headers.
|
||||||
|
+ *-fennix*)
|
||||||
|
+
|
||||||
|
+ # All these tests are for C++; save the language and the compiler flags.
|
||||||
|
+ # The CXXFLAGS thing is suspicious, but based on similar bits previously
|
||||||
|
+ # found in GLIBCXX_CONFIGURE.
|
||||||
|
+
|
||||||
|
+ ac_ext=cpp
|
||||||
|
+ac_cpp='$CXXCPP $CPPFLAGS'
|
||||||
|
+ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
+ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
+ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
|
||||||
|
+
|
||||||
|
+ ac_test_CXXFLAGS="${CXXFLAGS+set}"
|
||||||
|
+ ac_save_CXXFLAGS="$CXXFLAGS"
|
||||||
|
+
|
||||||
|
+ # Check for -ffunction-sections -fdata-sections
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for g++ that supports -ffunction-sections -fdata-sections" >&5
|
||||||
|
+$as_echo_n "checking for g++ that supports -ffunction-sections -fdata-sections... " >&6; }
|
||||||
|
+ CXXFLAGS='-g -Werror -ffunction-sections -fdata-sections'
|
||||||
|
+ cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
+/* end confdefs.h. */
|
||||||
|
+int foo; void bar() { };
|
||||||
|
+int
|
||||||
|
+main ()
|
||||||
|
+{
|
||||||
|
+
|
||||||
|
+ ;
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+_ACEOF
|
||||||
|
+if ac_fn_cxx_try_compile "$LINENO"; then :
|
||||||
|
+ ac_fdsections=yes
|
||||||
|
+else
|
||||||
|
+ ac_fdsections=no
|
||||||
|
+fi
|
||||||
|
+rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
|
||||||
|
+ if test "$ac_test_CXXFLAGS" = set; then
|
||||||
|
+ CXXFLAGS="$ac_save_CXXFLAGS"
|
||||||
|
+ else
|
||||||
|
+ # this is the suspicious part
|
||||||
|
+ CXXFLAGS=''
|
||||||
|
+ fi
|
||||||
|
+ if test x"$ac_fdsections" = x"yes"; then
|
||||||
|
+ SECTION_FLAGS='-ffunction-sections -fdata-sections'
|
||||||
|
+ fi
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_fdsections" >&5
|
||||||
|
+$as_echo "$ac_fdsections" >&6; }
|
||||||
|
+
|
||||||
|
+ ac_ext=c
|
||||||
|
+ac_cpp='$CPP $CPPFLAGS'
|
||||||
|
+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
|
||||||
|
+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
|
||||||
|
+ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ # If we're not using GNU ld, then there's no point in even trying these
|
||||||
|
+ # tests. Check for that first. We should have already tested for gld
|
||||||
|
+ # by now (in libtool), but require it now just to be safe...
|
||||||
|
+ test -z "$SECTION_LDFLAGS" && SECTION_LDFLAGS=''
|
||||||
|
+ test -z "$OPT_LDFLAGS" && OPT_LDFLAGS=''
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ # The name set by libtool depends on the version of libtool. Shame on us
|
||||||
|
+ # for depending on an impl detail, but c'est la vie. Older versions used
|
||||||
|
+ # ac_cv_prog_gnu_ld, but now it's lt_cv_prog_gnu_ld, and is copied back on
|
||||||
|
+ # top of with_gnu_ld (which is also set by --with-gnu-ld, so that actually
|
||||||
|
+ # makes sense). We'll test with_gnu_ld everywhere else, so if that isn't
|
||||||
|
+ # set (hence we're using an older libtool), then set it.
|
||||||
|
+ if test x${with_gnu_ld+set} != xset; then
|
||||||
|
+ if test x${ac_cv_prog_gnu_ld+set} != xset; then
|
||||||
|
+ # We got through "ac_require(ac_prog_ld)" and still not set? Huh?
|
||||||
|
+ with_gnu_ld=no
|
||||||
|
+ else
|
||||||
|
+ with_gnu_ld=$ac_cv_prog_gnu_ld
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ # Start by getting the version number. I think the libtool test already
|
||||||
|
+ # does some of this, but throws away the result.
|
||||||
|
+ glibcxx_ld_is_gold=no
|
||||||
|
+ glibcxx_ld_is_mold=no
|
||||||
|
+ if test x"$with_gnu_ld" = x"yes"; then
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld version" >&5
|
||||||
|
+$as_echo_n "checking for ld version... " >&6; }
|
||||||
|
+
|
||||||
|
+ if $LD --version 2>/dev/null | grep 'GNU gold' >/dev/null 2>&1; then
|
||||||
|
+ glibcxx_ld_is_gold=yes
|
||||||
|
+ elif $LD --version 2>/dev/null | grep 'mold' >/dev/null 2>&1; then
|
||||||
|
+ glibcxx_ld_is_mold=yes
|
||||||
|
+ fi
|
||||||
|
+ ldver=`$LD --version 2>/dev/null |
|
||||||
|
+ sed -e 's/[. ][0-9]\{8\}$//;s/.* \([^ ]\{1,\}\)$/\1/; q'`
|
||||||
|
+
|
||||||
|
+ glibcxx_gnu_ld_version=`echo $ldver | \
|
||||||
|
+ $AWK -F. '{ if (NF<3) $3=0; print ($1*100+$2)*100+$3 }'`
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $glibcxx_gnu_ld_version" >&5
|
||||||
|
+$as_echo "$glibcxx_gnu_ld_version" >&6; }
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ # Set --gc-sections.
|
||||||
|
+ glibcxx_have_gc_sections=no
|
||||||
|
+ if test "$glibcxx_ld_is_gold" = "yes" || test "$glibcxx_ld_is_mold" = "yes" ; then
|
||||||
|
+ if $LD --help 2>/dev/null | grep gc-sections >/dev/null 2>&1; then
|
||||||
|
+ glibcxx_have_gc_sections=yes
|
||||||
|
+ fi
|
||||||
|
+ else
|
||||||
|
+ glibcxx_gcsections_min_ld=21602
|
||||||
|
+ if test x"$with_gnu_ld" = x"yes" &&
|
||||||
|
+ test $glibcxx_gnu_ld_version -gt $glibcxx_gcsections_min_ld ; then
|
||||||
|
+ glibcxx_have_gc_sections=yes
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ if test "$glibcxx_have_gc_sections" = "yes"; then
|
||||||
|
+ # Sufficiently young GNU ld it is! Joy and bunny rabbits!
|
||||||
|
+ # NB: This flag only works reliably after 2.16.1. Configure tests
|
||||||
|
+ # for this are difficult, so hard wire a value that should work.
|
||||||
|
+
|
||||||
|
+ ac_test_CFLAGS="${CFLAGS+set}"
|
||||||
|
+ ac_save_CFLAGS="$CFLAGS"
|
||||||
|
+ CFLAGS='-Wl,--gc-sections'
|
||||||
|
+
|
||||||
|
+ # Check for -Wl,--gc-sections
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,--gc-sections" >&5
|
||||||
|
+$as_echo_n "checking for ld that supports -Wl,--gc-sections... " >&6; }
|
||||||
|
+ if test x$gcc_no_link = xyes; then
|
||||||
|
+ as_fn_error $? "Link tests are not allowed after GCC_NO_EXECUTABLES." "$LINENO" 5
|
||||||
|
+fi
|
||||||
|
+cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
||||||
|
+/* end confdefs.h. */
|
||||||
|
+ int one(void) { return 1; }
|
||||||
|
+ int two(void) { return 2; }
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main ()
|
||||||
|
+{
|
||||||
|
+ two();
|
||||||
|
+ ;
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
+_ACEOF
|
||||||
|
+if ac_fn_c_try_link "$LINENO"; then :
|
||||||
|
+ ac_gcsections=yes
|
||||||
|
+else
|
||||||
|
+ ac_gcsections=no
|
||||||
|
+fi
|
||||||
|
+rm -f core conftest.err conftest.$ac_objext \
|
||||||
|
+ conftest$ac_exeext conftest.$ac_ext
|
||||||
|
+ if test "$ac_gcsections" = "yes"; then
|
||||||
|
+ rm -f conftest.c
|
||||||
|
+ touch conftest.c
|
||||||
|
+ if $CC -c conftest.c; then
|
||||||
|
+ if $LD --gc-sections -o conftest conftest.o 2>&1 | \
|
||||||
|
+ grep "Warning: gc-sections option ignored" > /dev/null; then
|
||||||
|
+ ac_gcsections=no
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+ rm -f conftest.c conftest.o conftest
|
||||||
|
+ fi
|
||||||
|
+ if test "$ac_gcsections" = "yes"; then
|
||||||
|
+ SECTION_LDFLAGS="-Wl,--gc-sections $SECTION_LDFLAGS"
|
||||||
|
+ fi
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_gcsections" >&5
|
||||||
|
+$as_echo "$ac_gcsections" >&6; }
|
||||||
|
+
|
||||||
|
+ if test "$ac_test_CFLAGS" = set; then
|
||||||
|
+ CFLAGS="$ac_save_CFLAGS"
|
||||||
|
+ else
|
||||||
|
+ # this is the suspicious part
|
||||||
|
+ CFLAGS=''
|
||||||
|
+ fi
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ # Set -z,relro.
|
||||||
|
+ # Note this is only for shared objects.
|
||||||
|
+ ac_ld_relro=no
|
||||||
|
+ if test x"$with_gnu_ld" = x"yes"; then
|
||||||
|
+ # cygwin and mingw uses PE, which has no ELF relro support,
|
||||||
|
+ # multi target ld may confuse configure machinery
|
||||||
|
+ case "$host" in
|
||||||
|
+ *-*-cygwin*)
|
||||||
|
+ ;;
|
||||||
|
+ *-*-mingw*)
|
||||||
|
+ ;;
|
||||||
|
+ *)
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld that supports -Wl,-z,relro" >&5
|
||||||
|
+$as_echo_n "checking for ld that supports -Wl,-z,relro... " >&6; }
|
||||||
|
+ cxx_z_relo=`$LD -v --help 2>/dev/null | grep "z relro"`
|
||||||
|
+ if test -n "$cxx_z_relo"; then
|
||||||
|
+ OPT_LDFLAGS="-Wl,-z,relro"
|
||||||
|
+ ac_ld_relro=yes
|
||||||
|
+ fi
|
||||||
|
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ld_relro" >&5
|
||||||
|
+$as_echo "$ac_ld_relro" >&6; }
|
||||||
|
+ esac
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+ # Set linker optimization flags.
|
||||||
|
+ if test x"$with_gnu_ld" = x"yes"; then
|
||||||
|
+ OPT_LDFLAGS="-Wl,-O1 $OPT_LDFLAGS"
|
||||||
|
+ fi
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+
|
||||||
|
|
||||||
|
- # Don't call GLIBCXX_CHECK_LINKER_FEATURES, Darwin doesn't have a GNU ld
|
||||||
|
|
||||||
|
ac_test_CXXFLAGS="${CXXFLAGS+set}"
|
||||||
|
ac_save_CXXFLAGS="$CXXFLAGS"
|
||||||
|
@@ -38094,32 +41350,6 @@ done
|
||||||
|
|
||||||
|
CXXFLAGS="$ac_save_CXXFLAGS"
|
||||||
|
|
||||||
|
-
|
||||||
|
- for ac_func in uselocale
|
||||||
|
-do :
|
||||||
|
- ac_fn_c_check_func "$LINENO" "uselocale" "ac_cv_func_uselocale"
|
||||||
|
-if test "x$ac_cv_func_uselocale" = xyes; then :
|
||||||
|
- cat >>confdefs.h <<_ACEOF
|
||||||
|
-#define HAVE_USELOCALE 1
|
||||||
|
-_ACEOF
|
||||||
|
-
|
||||||
|
-fi
|
||||||
|
-done
|
||||||
|
-
|
||||||
|
- ;;
|
||||||
|
-
|
||||||
|
- *djgpp)
|
||||||
|
- # GLIBCXX_CHECK_MATH_SUPPORT
|
||||||
|
- $as_echo "#define HAVE_ISINF 1" >>confdefs.h
|
||||||
|
-
|
||||||
|
- $as_echo "#define HAVE_ISNAN 1" >>confdefs.h
|
||||||
|
-
|
||||||
|
- $as_echo "#define HAVE_FINITE 1" >>confdefs.h
|
||||||
|
-
|
||||||
|
- $as_echo "#define HAVE_SINCOS 1" >>confdefs.h
|
||||||
|
-
|
||||||
|
- $as_echo "#define HAVE_HYPOT 1" >>confdefs.h
|
||||||
|
-
|
||||||
|
;;
|
||||||
|
|
||||||
|
*-freebsd*)
|
||||||
diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
|
diff --git a/libstdc++-v3/crossconfig.m4 b/libstdc++-v3/crossconfig.m4
|
||||||
index b3269cb88..de1f886b9 100644
|
index b3269cb88..de1f886b9 100644
|
||||||
--- a/libstdc++-v3/crossconfig.m4
|
--- a/libstdc++-v3/crossconfig.m4
|
||||||
|
Loading…
x
Reference in New Issue
Block a user