Skip to content

Commit

Permalink
Merge pull request #32 from X-FRI/main
Browse files Browse the repository at this point in the history
[Update]: Smaller executable file
  • Loading branch information
muqiuhan authored Nov 23, 2023
2 parents b3776bd + 598f391 commit 61babaa
Show file tree
Hide file tree
Showing 3 changed files with 53 additions and 49 deletions.
22 changes: 12 additions & 10 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -13,14 +13,16 @@ set(CMAKE_CXX_COMPILER "/usr/bin/clang++")
add_executable(bonding "")
set_target_properties(bonding PROPERTIES OUTPUT_NAME "bonding")
set_target_properties(bonding PROPERTIES RUNTIME_OUTPUT_DIRECTORY "${CMAKE_SOURCE_DIR}/build/linux/x86_64/release")
target_include_directories(bonding PRIVATE
/home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include
target_include_directories(bonding SYSTEM PRIVATE
/home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include
/home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include
)
target_compile_options(bonding PRIVATE
$<$<COMPILE_LANGUAGE:C>:-m64>
$<$<COMPILE_LANGUAGE:CXX>:-m64>
$<$<COMPILE_LANGUAGE:C>:-DNDEBUG>
$<$<COMPILE_LANGUAGE:CXX>:-DNDEBUG>
$<$<COMPILE_LANGUAGE:CXX>:-O2 -ffunction-sections -Wl,-gc-sections -static-libstdc++ -s>
)
set_target_properties(bonding PROPERTIES CXX_EXTENSIONS OFF)
target_compile_features(bonding PRIVATE cxx_std_17)
Expand All @@ -45,22 +47,22 @@ target_link_options(bonding PRIVATE
-m64
)
target_sources(bonding PRIVATE
src/config.cpp
src/exec.cpp
src/capabilities.cpp
src/child.cpp
src/config.cpp
src/container.cpp
src/environment.cpp
src/error.cpp
src/exec.cpp
src/hostname.cpp
src/ipc.cpp
src/main.cpp
src/mount.cpp
src/namespace.cpp
src/resource.cpp
src/syscall.cpp
src/configfile.cpp
src/unix.cpp
src/child.cpp
src/cli.cpp
src/error.cpp
src/configfile.cpp
src/main.cpp
src/resource.cpp
src/syscall.cpp
)

76 changes: 38 additions & 38 deletions build.ninja
Original file line number Diff line number Diff line change
Expand Up @@ -9,13 +9,13 @@ rule gen
description = regenerating ninja files

# rules for compiler
rule cc
rule mm
command = /usr/bin/clang $ARGS -MMD -MF $out.d -o $out -c $in
deps = gcc
depfile = $out.d
description = compiling.release $in

rule mm
rule cc
command = /usr/bin/clang $ARGS -MMD -MF $out.d -o $out -c $in
deps = gcc
depfile = $out.d
Expand All @@ -41,17 +41,17 @@ rule mxx


# rules for linker
rule sh
command = /usr/bin/clang++ -o $out $in $ARGS
description = linking.release $out
rule ar
command = /usr/bin/ar $ARGS $out $in
description = archiving.release $out

rule ld
command = /usr/bin/clang++ -o $out $in $ARGS
description = linking.release $out

rule ar
command = /usr/bin/ar $ARGS $out $in
description = archiving.release $out
rule sh
command = /usr/bin/clang++ -o $out $in $ARGS
description = linking.release $out


# build targets
Expand All @@ -62,59 +62,59 @@ build build.ninja: gen $

# build target: bonding
build bonding: phony build/linux/x86_64/release/bonding
build build/linux/x86_64/release/bonding: ld build/.objs/bonding/linux/x86_64/release/src/config.cpp.o build/.objs/bonding/linux/x86_64/release/src/exec.cpp.o build/.objs/bonding/linux/x86_64/release/src/capabilities.cpp.o build/.objs/bonding/linux/x86_64/release/src/child.cpp.o build/.objs/bonding/linux/x86_64/release/src/container.cpp.o build/.objs/bonding/linux/x86_64/release/src/environment.cpp.o build/.objs/bonding/linux/x86_64/release/src/hostname.cpp.o build/.objs/bonding/linux/x86_64/release/src/ipc.cpp.o build/.objs/bonding/linux/x86_64/release/src/main.cpp.o build/.objs/bonding/linux/x86_64/release/src/mount.cpp.o build/.objs/bonding/linux/x86_64/release/src/namespace.cpp.o build/.objs/bonding/linux/x86_64/release/src/resource.cpp.o build/.objs/bonding/linux/x86_64/release/src/syscall.cpp.o build/.objs/bonding/linux/x86_64/release/src/configfile.cpp.o build/.objs/bonding/linux/x86_64/release/src/unix.cpp.o build/.objs/bonding/linux/x86_64/release/src/cli.cpp.o build/.objs/bonding/linux/x86_64/release/src/error.cpp.o
build build/linux/x86_64/release/bonding: ld build/.objs/bonding/linux/x86_64/release/src/capabilities.cpp.o build/.objs/bonding/linux/x86_64/release/src/config.cpp.o build/.objs/bonding/linux/x86_64/release/src/container.cpp.o build/.objs/bonding/linux/x86_64/release/src/environment.cpp.o build/.objs/bonding/linux/x86_64/release/src/error.cpp.o build/.objs/bonding/linux/x86_64/release/src/exec.cpp.o build/.objs/bonding/linux/x86_64/release/src/hostname.cpp.o build/.objs/bonding/linux/x86_64/release/src/ipc.cpp.o build/.objs/bonding/linux/x86_64/release/src/mount.cpp.o build/.objs/bonding/linux/x86_64/release/src/namespace.cpp.o build/.objs/bonding/linux/x86_64/release/src/unix.cpp.o build/.objs/bonding/linux/x86_64/release/src/child.cpp.o build/.objs/bonding/linux/x86_64/release/src/cli.cpp.o build/.objs/bonding/linux/x86_64/release/src/configfile.cpp.o build/.objs/bonding/linux/x86_64/release/src/main.cpp.o build/.objs/bonding/linux/x86_64/release/src/resource.cpp.o build/.objs/bonding/linux/x86_64/release/src/syscall.cpp.o
ARGS = -m64 -s -lseccomp -lcap

build build/.objs/bonding/linux/x86_64/release/src/config.cpp.o: cxx src/config.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/exec.cpp.o: cxx src/exec.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/capabilities.cpp.o: cxx src/capabilities.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/child.cpp.o: cxx src/child.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
build build/.objs/bonding/linux/x86_64/release/src/config.cpp.o: cxx src/config.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/container.cpp.o: cxx src/container.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/environment.cpp.o: cxx src/environment.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/error.cpp.o: cxx src/error.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/exec.cpp.o: cxx src/exec.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/hostname.cpp.o: cxx src/hostname.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/ipc.cpp.o: cxx src/ipc.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/main.cpp.o: cxx src/main.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/mount.cpp.o: cxx src/mount.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/namespace.cpp.o: cxx src/namespace.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/resource.cpp.o: cxx src/resource.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
build build/.objs/bonding/linux/x86_64/release/src/unix.cpp.o: cxx src/unix.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/syscall.cpp.o: cxx src/syscall.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
build build/.objs/bonding/linux/x86_64/release/src/child.cpp.o: cxx src/child.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/cli.cpp.o: cxx src/cli.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/configfile.cpp.o: cxx src/configfile.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/unix.cpp.o: cxx src/unix.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
build build/.objs/bonding/linux/x86_64/release/src/main.cpp.o: cxx src/main.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/cli.cpp.o: cxx src/cli.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
build build/.objs/bonding/linux/x86_64/release/src/resource.cpp.o: cxx src/resource.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build build/.objs/bonding/linux/x86_64/release/src/error.cpp.o: cxx src/error.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu-han/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem -DNDEBUG
build build/.objs/bonding/linux/x86_64/release/src/syscall.cpp.o: cxx src/syscall.cpp
ARGS = -Qunused-arguments -m64 -fvisibility=hidden -fvisibility-inlines-hidden -O3 -std=c++17 -isystem /home/muqiu/.xmake/packages/p/plog/1.1.9/2ddcabfa535b431584ecede27117dc7d/include -isystem /home/muqiu/.xmake/packages/n/nlohmann_json/v3.11.2/efd3cf16388a46048c8713952f1ede18/include -isystem -O2 -isystem -ffunction-sections -isystem -Wl,-gc-sections -isystem -static-libstdc++ -isystem -s -isystem -DNDEBUG

build default: phony bonding
build all: phony bonding
Expand Down
4 changes: 3 additions & 1 deletion xmake.lua
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,14 @@ set_xmakever("2.8.1")
add_rules("mode.debug", "mode.release")
add_rules("plugin.compile_commands.autoupdate", {outputdir = "."})

add_requires("libcap", "libseccomp", "plog", "nlohmann_json")
add_requires("plog", "nlohmann_json")

target("bonding")
set_kind("binary")
set_languages("c++17")
set_policy("check.auto_ignore_flags", false)

add_cxxflags("-O2 -ffunction-sections -Wl,-gc-sections -static-libstdc++ -s")
add_files("src/*.cpp")
add_packages("plog", "result", "nlohmann_json")
add_links("seccomp", "cap")
Expand Down

0 comments on commit 61babaa

Please sign in to comment.