1 Star 0 Fork 6

邓雨雨01/mingw-binutils

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
0001-Plugin-target-handling.patch 5.19 KB
一键复制 编辑 原始数据 按行查看 历史
zhiyi 提交于 2020-10-08 17:29 . Initial version
diff -rupN --no-dereference binutils-2.32/bfd/config.bfd binutils-2.32-new/bfd/config.bfd
--- binutils-2.32/bfd/config.bfd 2019-01-19 17:01:32.000000000 +0100
+++ binutils-2.32-new/bfd/config.bfd 2019-11-19 20:47:16.708676031 +0100
@@ -217,11 +217,6 @@ esac
# convention, else the table becomes a real mess to understand and maintain.
case "${targ}" in
- plugin)
- targ_defvec=plugin_vec
- targ_selvecs="plugin_vec"
- ;;
-
# START OF targmatch.h
#ifdef BFD64
aarch64-*-darwin*)
diff -rupN --no-dereference binutils-2.32/bfd/configure binutils-2.32-new/bfd/configure
--- binutils-2.32/bfd/configure 2019-02-02 16:47:56.000000000 +0100
+++ binutils-2.32-new/bfd/configure 2019-11-19 20:47:16.710676043 +0100
@@ -12409,10 +12409,6 @@ else
fi
-if test "$plugins" = "yes"; then
- enable_targets="$enable_targets plugin"
-fi
-
# Check whether --enable-64-bit-bfd was given.
if test "${enable_64_bit_bfd+set}" = set; then :
enableval=$enable_64_bit_bfd; case "${enableval}" in
@@ -14580,12 +14576,12 @@ selarchs=
TDEFINES=
for targ in $target $canon_targets
do
- if test "x$targ" = "xall"; then
+ if test $targ = all; then
all_targets=true
assocvecs="$assocvecs $targ_defvec $targ_selvecs"
- else
+ elif test $targ != plugin; then
. $srcdir/config.bfd
- if test "x$targ" = "x$target"; then
+ if test $targ = $target; then
defvec=$targ_defvec
fi
selvecs="$selvecs $targ_defvec $targ_selvecs"
@@ -14820,7 +14816,6 @@ do
pef_xlib_vec) tb="$tb pef.lo" ;;
pj_elf32_vec) tb="$tb elf32-pj.lo elf32.lo $elf" ;;
pj_elf32_le_vec) tb="$tb elf32-pj.lo elf32.lo $elf" ;;
- plugin_vec) tb="$tb plugin.lo" ;;
powerpc_boot_vec) tb="$tb ppcboot.lo" ;;
powerpc_elf32_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf32_le_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
@@ -14947,6 +14942,10 @@ do
fi
done
+if test "$plugins" = "yes"; then
+ tb="$tb plugin.lo"
+fi
+
# Target architecture .o files.
# A couple of CPUs use shorter file names to avoid problems on DOS
# filesystems.
diff -rupN --no-dereference binutils-2.32/bfd/configure.ac binutils-2.32-new/bfd/configure.ac
--- binutils-2.32/bfd/configure.ac 2019-01-19 17:01:32.000000000 +0100
+++ binutils-2.32-new/bfd/configure.ac 2019-11-19 20:47:16.710676043 +0100
@@ -46,10 +46,6 @@ ACX_LARGEFILE
AM_CONDITIONAL(PLUGINS, test "$plugins" = "yes")
-if test "$plugins" = "yes"; then
- enable_targets="$enable_targets plugin"
-fi
-
AC_ARG_ENABLE(64-bit-bfd,
[ --enable-64-bit-bfd 64-bit support (on hosts with narrower word sizes)],
[case "${enableval}" in
@@ -348,12 +344,12 @@ selarchs=
TDEFINES=
for targ in $target $canon_targets
do
- if test "x$targ" = "xall"; then
+ if test $targ = all; then
all_targets=true
assocvecs="$assocvecs $targ_defvec $targ_selvecs"
- else
+ elif test $targ != plugin; then
. $srcdir/config.bfd
- if test "x$targ" = "x$target"; then
+ if test $targ = $target; then
defvec=$targ_defvec
fi
selvecs="$selvecs $targ_defvec $targ_selvecs"
@@ -588,7 +584,6 @@ do
pef_xlib_vec) tb="$tb pef.lo" ;;
pj_elf32_vec) tb="$tb elf32-pj.lo elf32.lo $elf" ;;
pj_elf32_le_vec) tb="$tb elf32-pj.lo elf32.lo $elf" ;;
- plugin_vec) tb="$tb plugin.lo" ;;
powerpc_boot_vec) tb="$tb ppcboot.lo" ;;
powerpc_elf32_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
powerpc_elf32_le_vec) tb="$tb elf32-ppc.lo elf-vxworks.lo elf32.lo $elf" ;;
@@ -715,6 +710,10 @@ do
fi
done
+if test "$plugins" = "yes"; then
+ tb="$tb plugin.lo"
+fi
+
# Target architecture .o files.
# A couple of CPUs use shorter file names to avoid problems on DOS
# filesystems.
diff -rupN --no-dereference binutils-2.32/bfd/format.c binutils-2.32-new/bfd/format.c
--- binutils-2.32/bfd/format.c 2019-01-19 17:01:33.000000000 +0100
+++ binutils-2.32-new/bfd/format.c 2019-11-19 20:47:16.710676043 +0100
@@ -290,8 +290,15 @@ bfd_check_format_matches (bfd *abfd, bfd
{
const bfd_target *temp;
- /* Don't check the default target twice. */
+ /* The binary target matches anything, so don't return it when
+ searching. Don't match the plugin target if we have another
+ alternative since we want to properly set the input format
+ before allowing a plugin to claim the file. Also, don't
+ check the default target twice. */
if (*target == &binary_vec
+#if BFD_SUPPORTS_PLUGINS
+ || (match_count != 0 && *target == &plugin_vec)
+#endif
|| (!abfd->target_defaulted && *target == save_targ))
continue;
diff -rupN --no-dereference binutils-2.32/bfd/targets.c binutils-2.32-new/bfd/targets.c
--- binutils-2.32/bfd/targets.c 2019-01-19 17:01:33.000000000 +0100
+++ binutils-2.32-new/bfd/targets.c 2019-11-19 20:47:16.711676049 +0100
@@ -1142,10 +1142,6 @@ static const bfd_target * const _bfd_tar
&pj_elf32_vec,
&pj_elf32_le_vec,
-#if BFD_SUPPORTS_PLUGINS
- &plugin_vec,
-#endif
-
&powerpc_boot_vec,
&powerpc_elf32_vec,
&powerpc_elf32_le_vec,
@@ -1298,6 +1294,10 @@ static const bfd_target * const _bfd_tar
/* Likewise for ihex. */
&ihex_vec,
+#if BFD_SUPPORTS_PLUGINS
+ &plugin_vec,
+#endif
+
/* Add any required traditional-core-file-handler. */
#ifdef AIX386_CORE
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/deng-yuyu-01/mingw-binutils.git
[email protected]:deng-yuyu-01/mingw-binutils.git
deng-yuyu-01
mingw-binutils
mingw-binutils
master

搜索帮助