X-Git-Url: https://glassweightruler.freedombox.rocks/gitweb/Ventoy.git/blobdiff_plain/1186caba41c57c390db2aee650d9c451809bffa3..HEAD:/DMSETUP/build.txt diff --git a/DMSETUP/build.txt b/DMSETUP/build.txt index 52fa10b..36e37a0 100644 --- a/DMSETUP/build.txt +++ b/DMSETUP/build.txt @@ -1,49 +1,70 @@ -Build a static linked, small dmsetup tool - -======== Source Code ======== -use an old version of dmsetup -http://vault.centos.org/5.3/os/SRPMS/device-mapper-1.02.28-2.el5.src.rpm -https://www.fefe.de/dietlibc/dietlibc-0.34.tar.xz - -======== Build Envrioment ======== -build for 32bit, static linked with dietlibc -1. install centos 6.10 i386 with CentOS-6.10-i386-bin-DVD1.iso -2. yum install gcc kernel-devel package -3. install dietc libc (just make && make install) -4. export PATH=$PATH:/opt/diet/bin - -======== Build Step ======== -1. extract device mapper source code -2. CC="diet gcc" ./configure --disable-nls --disable-selinux --disable-shared -3. modify include/configure.h file - --- delete the line with "#define malloc rpl_malloc" - --- add 2 defines as follow: - #ifndef UINT32_MAX - #define UINT32_MAX (4294967295U) - #endif - - #ifndef UINT64_C - #define UINT64_C(c) c ## ULL - #endif - -4. make -5. strip dmsetup/dmsetup -6. get dmsetup/dmsetup as the dmsetup32 binary file - - - - - - -======================== Build for 64bit dmsetup ========================= -https://www.uclibc.org/downloads/binaries/0.9.30.1/mini-native-x86_64.tar.bz2 -1. extract device mapper source code -2. extract mini-native-x86_64.tar.bz2 -3. chroot to mini-native-x86_64 -3. ./configure --disable-nls --disable-selinux --disable-shared --enable-static_link -4. make -5. strip dmsetup/dmsetup.static -6. get dmsetup/dmsetup.static as the dmsetup64 binary file - - - +Build a static linked, small dmsetup tool + +======== Source Code ======== +use an old version of dmsetup +http://vault.centos.org/5.3/os/SRPMS/device-mapper-1.02.28-2.el5.src.rpm +https://www.fefe.de/dietlibc/dietlibc-0.34.tar.xz + +======== Build Environment ======== +build for 32bit, static linked with dietlibc +1. install centos 6.10 i386 with CentOS-6.10-i386-bin-DVD1.iso +2. yum install gcc kernel-devel package +3. install dietc libc (just make && make install) +4. export PATH=$PATH:/opt/diet/bin + +======== Build Step ======== +1. extract device mapper source code +2. CC="diet gcc" ./configure --disable-nls --disable-selinux --disable-shared +3. modify include/configure.h file + --- delete the line with "#define malloc rpl_malloc" + --- add 2 defines as follow: + #ifndef UINT32_MAX + #define UINT32_MAX (4294967295U) + #endif + + #ifndef UINT64_C + #define UINT64_C(c) c ## ULL + #endif + +4. make +5. strip dmsetup/dmsetup +6. get dmsetup/dmsetup as the dmsetup32 binary file + + + + + + +======================== Build for 64bit dmsetup ========================= +1. extract device mapper source code +2. ./configure --disable-nls --disable-selinux --disable-shared --enable-static_link CC='gcc -specs /usr/local/musl/lib/musl-gcc.specs' +3. touch include/linux/limits.h include/linux/types.h + echo '#include ' > include/linux/fs.h +4. make +5. strip --strip-all dmsetup/dmsetup.static +6. get dmsetup/dmsetup.static as the dmsetup64 binary file + + +======================== Build for arm64 dmsetup ========================= +1. extract device mapper source code +2. ./configure CC=aarch64-linux-gcc --target=arm --host=x86_64-linux-gnu --disable-nls --disable-selinux --disable-shared --enable-static_link +3. modify include/configure.h file + --- delete the line with "#define malloc rpl_malloc" +4. make +5. aarch64-linux-strip dmsetup/dmsetup.static +6. get dmsetup/dmsetup.static as the dmsetupaa64 binary file + + +======================== Build for mips64 dmsetup ========================= +1. extract device mapper source code +2. ./configure CC="mips64el-linux-musl-gcc -mips64r2 -mabi=64" --target=mips --host=x86_64-linux-gnu --disable-nls --disable-selinux --disable-shared --enable-static_link +3. modify include/configure.h file + --- delete the line with "#define malloc rpl_malloc" +4. make +5. mips64el-linux-musl-strip dmsetup/dmsetup.static +6. get dmsetup/dmsetup.static as the dmsetupm64e binary file + + + + +