diff options
-rw-r--r-- | README.MMGLUE | 9 | ||||
-rw-r--r-- | musl.lzy | 391 |
2 files changed, 0 insertions, 400 deletions
diff --git a/README.MMGLUE b/README.MMGLUE index b5940f7..23b24b8 100644 --- a/README.MMGLUE +++ b/README.MMGLUE @@ -6,12 +6,3 @@ bits for musl libc (musl-libc.org). the midipix musl port does not require any changes to upstream source files, and has all files under the appropriate architecture-specific directories. - -in order to ease development by way of out-of-tree builds, this project -currently uses 'lazy' as its build system. 'lazy' is deviant and somehow -slower than standard make files, but nonetheless gets the job done. - -building requires a combined source tree (musl+mmglue) together with lazy, -and of course also the midipix toolchain. - -to get lazy, git clone git://midipix.org/lazy; diff --git a/musl.lzy b/musl.lzy deleted file mode 100644 index 8ae9f66..0000000 --- a/musl.lzy +++ /dev/null @@ -1,391 +0,0 @@ -# lazy mark: project recipe -lz_project_rules() -{ - lz_rules="all install install_no_complex \ - libc libc_shared libc_static \ - libc_no_complex libc_shared_no_complex libc_static_no_complex" -} - - -lz_project_definitions() -{ - lz_cflags_common="-std=c99 -pipe -ffreestanding -nostdinc -D_XOPEN_SOURCE=700 -fomit-frame-pointer" - - lz_cflags_include_common="-I$lz_project_dir/src/internal \ - -I$lz_project_dir/arch/$lz_arch \ - -I$lz_project_dir/include \ - -I$lz_build_dir/arch/$lz_arch \ - -I$lz_build_dir/include" - - musl_empty_lib_names="m rt pthread crypt util xnet resolv dl" - musl_cflags_crt="-fPIC" - musl_cflags_shared="-fPIC" - - if [ "$lz_pecoff_winnt"x = yesx ]; then - pe_excluded_symbols="_dlstart" - pe_excluded_symbols="$pe_excluded_symbols,__syscall_vtbl" - pe_excluded_symbols="$pe_excluded_symbols,__ldso_vtbl" - pe_excluded_symbols="$pe_excluded_symbols,__psx_vtbl" - pe_excluded_symbols="$pe_excluded_symbols,__teb_sys_idx" - pe_excluded_symbols="$pe_excluded_symbols,__teb_libc_idx" - pe_excluded_symbols="$pe_excluded_symbols,__vm_lock_impl" - pe_excluded_symbols="$pe_excluded_symbols,__vm_unlock_impl" - - musl_libc_so_ldflags="-shared -e _dlstart \ - -Bsymbolic-functions \ - --subsystem windows \ - --output-def $lz_build_dir/lib/libc.so.def \ - --out-dsolib $lz_build_dir/lib/libc.lib.a \ - --exclude-symbols=$pe_excluded_symbols" - else - musl_libc_so_ldflags="-shared -e _dlstart -Bsymbolic-functions" - musl_cflags_shared="$musl_cflags_shared -DSHARED" - fi - - musl_libc_src_dirs="src arch/$lz_arch/src arch/$lz_arch/weak" - musl_libc_mem_files="src/string/memcpy.c src/string/memmove.c src/string/memcmp.c src/string/memset.c" - - - lz_flag_tests_begin - - for musl_test_flag in "-frounding-math" "-fexcess-precision=standard"; do - lz_compiler_supports_flag $lz_c_compiler "$musl_test_flag" \ - && lz_cflags_common="$lz_cflags_common $musl_test_flag" - done - - for musl_test_flag in "-fno-tree-loop-distribute-patterns"; do - lz_compiler_supports_flag $lz_c_compiler "$musl_test_flag" \ - && musl_cflags_memops="$musl_cflags_memops $musl_test_flag" - done - - for musl_test_flag in "--hash-style=both"; do - lz_linker_supports_flag $lz_c_compiler $lz_ld "$musl_test_flag" \ - && musl_libc_so_ldflags="$musl_libc_so_ldflags $musl_test_flag" - done - - lz_flag_tests_end - - - if [ "$lz_debug"x = yesx ]; then - lz_cflags_debug="$lz_toolchain_cflags_debug" - else - lz_cflags_common="$lz_cflags_common -Os" - fi - - # names of binary files and/or utilities - musl_libc_a_name="$lz_build_dir/lib/libc$lz_stlib_ext" - musl_libc_so_name="$lz_build_dir/lib/libc$lz_dylib_ext" - - # temporary files to store meta information - musl_libc_so_obj_list=libc.so.objs - musl_libc_so_src_list=libc.so.src.lst - - musl_libc_a_obj_list=libc.a.objs - musl_libc_a_src_list=libc.a.src.lst - - musl_crt_obj_list=crt.objs - musl_crt_src_list=crt.src.lst - - musl_install_sh=$lz_project_dir/tools/install.sh - musl_ldso="$lz_syslibdir/ld-musl-$lz_arch$lz_subarch.so.1" -} - - -musl_headers() -{ - if [ -f $lz_build_dir/headers.tag ]; then - lz_ok && return - fi - - mkdir -p $lz_build_dir/include - cp -R $lz_project_dir/arch/$lz_arch/bits $lz_build_dir/include - - touch $lz_build_dir/headers.tag -} - - -musl_alltypes() -{ - if [ -f $lz_build_dir/alltypes.tag ]; then - lz_ok && return - fi - - sed -f $lz_project_dir/tools/mkalltypes.sed \ - $lz_build_dir/include/bits/alltypes.h.in \ - $lz_project_dir/include/alltypes.h.in > \ - $lz_build_dir/include/bits/alltypes.h - - touch $lz_build_dir/alltypes.tag -} - - -musl_version() -{ - if [ -f $lz_build_dir/version.tag ]; then - lz_ok && return - fi - - lz_pushd $lz_project_dir - lzp_version=`sh tools/version.sh` - lz_popd - - printf '#define VERSION "%s"\n' $lzp_version \ - > $lz_build_dir/include/version.h - - touch $lz_build_dir/version.tag -} - - -musl_empty_libs() -{ - if [ -f $lz_build_dir/empty_libs.tag ]; then - lz_ok && return - fi - - for lzp_lib_name in $musl_empty_lib_names; do - lzp_lib_file_name=$lz_build_dir/lib/lib$lzp_lib_name.a - rm -f $lzp_lib_file_name - $lz_ar rc $lzp_lib_file_name - done - - touch $lz_build_dir/empty_libs.tag -} - -musl_crt() -{ - musl_headers - musl_alltypes - - lz_cflags_extra="$musl_cflags_crt" - lz_src_dirs="crt" - - lz_compile "$musl_crt_obj_list" "$musl_crt_src_list" "$lz_stobj_ext" -} - - -musl_libc_common() -{ - musl_headers - musl_alltypes - musl_version -} - - -musl_libc_shared() -{ - musl_libc_common - musl_crt - - # memory functions - lz_cflags_extra="$musl_cflags_shared $musl_cflags_no_complex" - lz_cflags_special="$musl_cflags_memops" - lz_src_files="$musl_libc_mem_files" - lz_src_dirs=$lz_ignore_src_dirs - - lz_compile "$musl_libc_so_obj_list" "$musl_libc_so_src_list" "$lz_dyobj_ext" - - lz_src_files= - lz_cflags_special= - - # regular source files - lz_cumulative_obj_list=yes - lz_src_dirs=$musl_libc_src_dirs - lz_exclude_src_files="$musl_libc_mem_files" - lz_compiler_rt_libs="$lz_compiler_rt_libs $lz_link_libgcc" - - if [ "$lz_pecoff_winnt"x = yesx ]; then - musl_crti_objs="musl_crti_objs.lst" - musl_crtn_objs="musl_crtn_objs.lst" - echo 'crt/crti.o' > $musl_crti_objs - echo 'crt/crtn.o' > $musl_crtn_objs - else - musl_crti_objs= - musl_crtn_objs= - fi - - rm -f "$musl_libc_so_name" - - lz_compile "$musl_libc_so_obj_list" "$musl_libc_so_src_list" "$lz_dyobj_ext" - lz_link "$musl_crti_objs $musl_libc_so_obj_list $musl_crtn_objs" \ - "$musl_libc_so_src_list" \ - "$musl_libc_so_name" \ - "$musl_libc_so_ldflags" \ - "$lz_compiler_rt_libs" \ - "$lz_arch_dynamic_syscall_libs" -} - - -musl_libc_static() -{ - musl_libc_common - - # memory functions - lz_cflags_special="$musl_cflags_memops" - lz_src_files="$musl_libc_mem_files" - lz_src_dirs=$lz_ignore_src_dirs - - lz_compile "$musl_libc_a_obj_list" "$musl_libc_a_src_list" "$lz_stobj_ext" - lz_src_files= - lz_cflags_special= - - # regular source files - lz_cumulative_obj_list=yes - lz_src_dirs=$musl_libc_src_dirs - lz_exclude_src_files="$musl_libc_mem_files" - - rm -f "$musl_libc_a_name" - - lz_compile "$musl_libc_a_obj_list" "$musl_libc_a_src_list" "$lz_stobj_ext" - lz_archive "$musl_libc_a_obj_list" "$musl_libc_a_src_list" "$musl_libc_a_name" - - if [ "$lz_pecoff_winnt"x = yesx ]; then - if [ "$lz_arch_dynamic_syscall_libs"x != x ]; then - $lz_ar rc "$musl_libc_a_name" "$lz_arch_static_syscall_libs" - fi - fi -} - - -musl_libc_shared_no_complex() -{ - lz_link_libgcc= - lz_exclude_src_dirs="src/complex" - musl_cflags_no_complex="-DLIBC_NO_COMPLEX" - musl_libc_shared -} - - -musl_libc_static_no_complex() -{ - lz_exclude_src_dirs="src/complex" - musl_libc_static -} - - -musl_libc() -{ - lz_link_libgcc="--as-needed `$lz_c_compiler -print-file-name=libgcc.a`" - lz_step musl_crt - lz_step musl_libc_shared - lz_step musl_libc_static - lz_step musl_empty_libs -} - - -musl_libc_no_complex() -{ - lz_step musl_crt - lz_step musl_libc_shared_no_complex - lz_step musl_libc_static_no_complex - lz_step musl_empty_libs -} - - -musl_all() -{ - lz_step musl_libc -} - - -musl_install_crt() -{ - lz_pushd $lz_build_dir/crt - - musl_crt_files=`cat $lz_build_dir/crt.objs` - - for lzp_crt_file in $musl_crt_files; do - lzp_crt_obj_file=`basename $lzp_crt_file` - $musl_install_sh -D -m 644 $lzp_crt_obj_file $lz_libdir/$lzp_crt_obj_file - done - - lz_popd -} - - -musl_install_libs() -{ - lz_pushd $lz_build_dir/lib - - for lzp_lib_file in "c" $musl_empty_lib_names; do - $musl_install_sh -D -m 644 lib$lzp_lib_file$lz_stlib_ext $lz_libdir/lib$lzp_lib_file$lz_stlib_ext - done - - $musl_install_sh -D -m 755 libc$lz_dylib_ext $lz_libdir/libc$lz_dylib_ext - - if [ "$lz_pecoff_winnt"x = yesx ]; then - # also install the import library - $musl_install_sh -D -m 644 libc$lz_implib_ext $lz_libdir/libc$lz_implib_ext - fi - - lz_popd -} - - -musl_install_ldso() -{ - $musl_install_sh -D -l $lz_libdir/libc$lz_dylib_ext $musl_ldso -} - - -musl_install_headers() -{ - lz_pushd $lz_project_dir/include - - musl_include_files=`find . -type f` - - for lzp_include_file in $musl_include_files; do - $musl_install_sh -D -m 644 $lzp_include_file $lz_includedir/$lzp_include_file - done - - lz_popd -} - - -musl_install_arch_headers() -{ - lz_pushd $lz_build_dir/include - - musl_include_files=`find ./bits -type f ! -name *.h.in` - - for lzp_include_file in $musl_include_files; do - $musl_install_sh -D -m 644 $lzp_include_file $lz_includedir/$lzp_include_file - done - - lz_popd -} - - -musl_install_specs() -{ - sh $lz_project_dir/tools/musl-gcc.specs.sh \ - $(readlink -f "$lz_includedir") \ - $(readlink -f "$lz_libdir") \ - $(readlink -f "$musl_ldso") \ - > $lz_libdir/musl-gcc.specs -} - - -musl_install_common() -{ - lz_step musl_install_crt - lz_step musl_install_libs - lz_step musl_install_ldso - lz_step musl_install_headers - lz_step musl_install_arch_headers - lz_step musl_install_specs -} - - -musl_install() -{ - lz_step musl_all - lz_step musl_install_common -} - - -musl_install_no_complex() -{ - lz_step musl_libc_no_complex - lz_step musl_install_common -} - |