Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Third Party Musl
提交
d30c331d
T
Third Party Musl
项目概览
OpenHarmony
/
Third Party Musl
大约 1 年 前同步成功
通知
37
Star
125
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
T
Third Party Musl
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
d30c331d
编写于
9月 21, 2011
作者:
R
Rich Felker
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
new gcc wrapper now supports pre-4.4 gcc versions and is more robust
上级
7dd86ec1
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
40 addition
and
17 deletion
+40
-17
tools/gen-musl-gcc.sh
tools/gen-musl-gcc.sh
+40
-17
未找到文件。
tools/gen-musl-gcc.sh
浏览文件 @
d30c331d
...
...
@@ -3,6 +3,7 @@
printf
'#!/bin/sh\n\nlibc_prefix="%s"\nldso_pathname="%s"\n'
"
$1
"
"
$2
"
cat
<<
"
EOF
"
gcc=gcc
libc_lib=
$libc_prefix
/lib
libc_inc=
$libc_prefix
/include
libc_crt="
$libc_lib
/crt1.o"
...
...
@@ -10,23 +11,45 @@ libc_start="$libc_lib/crti.o"
libc_end="
$libc_lib
/crtn.o"
gcc_inc=
$libc_inc
libgcc="`gcc
\"
$@
\"
-print-file-name=libgcc.a`"
libgcc=
${
libgcc
%libgcc.a
}
gcc -wrapper sh,-c,'
x= ; y= ; z= ; s= ; for i ; do
[ "
$z
" ] || set -- ; z=1
case "
$i
" in
-shared) s=1 ; set -- "
$@
" -shared ;;
-Lxxxxxx) x=1 ;;
-xxxxxx) x= ; [ "
$s
" ] || set -- "
$@
" "'"
$libc_start
"'" "'"
$libc_crt
"'" ;;
-l*) [ "
$y
" ] || set -- "
$@
" '"
$libc_end
"' ; set -- "
$@
" "
$i
" ; y=1 ;;
*) [ "
$x
" ] || set -- "
$@
" "
$i
" ;;
esac
libgcc="
$(
"
$gcc
"
-print-file-name
=
libgcc.a
)
"
libgcc=
${
libgcc
%/libgcc.a
}
gccver=
${
libgcc
##*/
}
gcctarget=
${
libgcc
%/*
}
gcctarget=
${
gcctarget
##*/
}
case "
$gccver
" in
[0123].*|4.[01]*) ;;
*) nosp=-fno-stack-protector ;;
esac
[ "x
$1
" = "x-V" ] && { printf "%s: -V not supported
\n
" "
$0
" ; exit 1 ; }
for i ; do
case "
$skip$i
" in
-I|-L) skip=--- ; continue ;;
-[cSE]|-M*) nolink=1 ;;
-*) ;;
*) havefile=1 ;;
esac
skip=
done
exec "
$0
" "
$@
"
' -std=gnu99 -nostdinc -nostdlib
\
-isystem "
$libc_inc
" -isystem "
$gcc_inc
"
\
-Wl,-xxxxxx "
$@
" -L"
$libc_lib
" -lc -L"
$libgcc
" -lgcc -Lxxxxxx
\
[ "
$havefile
" ] || nolink=1
[ "
$nolink
" ] || {
tmp_specs=
$HOME
/.specs.tmp.
$$
printf '*link_libgcc:
\n\n\n
' > "
$tmp_specs
" || exit 1
exec 3<"
$tmp_specs
"
rm -f "
$tmp_specs
"
set -- -specs=/proc/self/fd/3 "
$libc_start
" "
$libc_crt
" "
$@
" "
$libc_end
"
\
-Wl,--start-group -lc -lgcc -lgcc_eh -Wl,--end-group
\
-Wl,-dynamic-linker,"
$ldso_pathname
" -Wl,-nostdlib
}
set -- -std=gnu99 -nostdinc -nostdlib
$nosp
\
-isystem "
$libc_inc
" -isystem "
$gcc_inc
" "
$@
"
\
-L"
$libc_lib
" -L"
$libgcc
"
exec "
$gcc
" "
$@
"
EOF
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录