LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1085|回复: 5

时间不多,贡献一下,推荐一篇文章。

[复制链接]
发表于 2009-6-28 15:04:04 | 显示全部楼层 |阅读模式
http://blog.flameeyes.eu/2006/06 ... denewldflags-stupid

之前有人讨论过 LDFLAGS 的,而且推荐了一堆。不过这篇文章中的部分段落反对了 --enable-new-dtags,原因是 binutils 已经做了工作了。这里给出了一点小建议是,用户不要太听信别人,启用一些其实不知道干什么的东西。我听了这个,好好的清理了我的make.conf,大家也有时候清理清理,确定他们真的有用还是你觉得……

个人以为认真理解"unless you really now what you are doing”是很有必要的。

--strip-all 这个选项到现在还是有不少人推荐的。我也干过,然后看到 Portage 的提示知道,有人帮我干这事。有的时候相信开发人员也是很有必要的。手册里的内容其实足够了。
发表于 2009-6-28 16:52:00 | 显示全部楼层
学习下,谢谢了
回复 支持 反对

使用道具 举报

发表于 2009-6-29 01:51:25 | 显示全部楼层
同灰太郎的。

不过这些东西我是看的一愣一愣的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-6-29 11:59:27 | 显示全部楼层
Post by jarryson;2001933
不过这些东西我是看的一愣一愣的

一愣一愣的?要翻译吗?

没用的处理:为什么我认为 kdenewldflags 很愚蠢?

  我看到很多人已经启用了 kdenewldflags 这个 USE。这个神奇的 USE 标志是在新近处理的 KDE eclass 中加入的。这个要做的事看上去很明显,就是想在编译 KDE 时启用 KDE 新进的配置参数。但是就是这样,这个 USE 标志设计的也很不明智。
  我不是那种我不喜欢什么、不赞成什么就说那东西是垃圾的人。我说用这个东西很不明智的真正原因是因为那些用这个的人,是因为用这个 USE 的人和加这个 USE 的人都不知道这个东西(在一个Gentoo系统中)做了些什么。
  我们来看看这个标志:
  
dnl Check if the linker supports --enable-new-dtags and --as-needed
AC_DEFUN([KDE_CHECK_NEW_LDFLAGS],[
  AC_ARG_ENABLE(new_ldflags,
                AC_HELP_STRING([--enable-new-ldflags],

    [enable the new linker flags]),
        kde_use_new_ldflags=$enableval,
        kde_use_new_ldflags=no)

  LDFLAGS_AS_NEEDED=""
  LDFLAGS_NEW_DTAGS=""
  if test "x$kde_use_new_ldflags" = "xyes"; then
       LDFLAGS_NEW_DTAGS=""
       KDE_CHECK_COMPILER_FLAG([Wl,--enable-new-dtags],
                [LDFLAGS_NEW_DTAGS="-Wl,--enable-new-dtags"],)

       KDE_CHECK_COMPILER_FLAG([Wl,--as-needed],
                [LDFLAGS_AS_NEEDED="-Wl,--as-needed"],)
  fi
  AC_SUBST(LDFLAGS_AS_NEEDED)
  AC_SUBST(LDFLAGS_NEW_DTAGS)
])

  这个就是 kdenewldflags 这个标志会要做的事。
  你看到什么东西很眼熟吗?没错,--as-needed!我写过很多次这个东西,几个月来一直希望能让他能被大多数人接受。
  不过这是一个方面。而且这个做法不是ebuild/eclass能接受的做法。(后面不太会翻译。)
  但是还有另外一个方面:这个--eanble-new-dtags。它有什么性能上的提升?没有,完全没有,绝对没有。这个东西和代码生成没有一点关系,和性能改善就更没有关系了。他只和ELF文件内部结构有关。看man page:

> This linker can create the new dynamic tags in ELF. But the older ELF systems may not understand them. If you specify enable-new-dtags, the dynamic tags will be created as needed. If you specify dis-able-new-dtags, no new dynamic tags will be created. By default, the new dynamic tags are not created.
> Note that those options are only available for ELF systems.

  然后就有一些其实根本不知道这个新功能干什么的人说“那个功能很不错,我们想要”。(其实,这个功能加的东西完完全全就是一些用于连接器和载入程序的内部符号而已,真的没有什么了。)我说的这些人既包括用这个 USE 标志的人,也有加这个 USE 标志的人。
  这里我要点破整个问题最搞笑的地方了:Gentoo 的 sys-apps/binutils 中早就加了强制使用 --enable-new-dtags 的补丁。除非你专门禁用他,不然这个功能就一直会开着的。
  总的来说,--as-needed 用USE来开还不如加到 LDFLAGS 中去,而专门打开 --enable-new-dtags 的设置完全没有用。再简单点说,kdenewldflags 这个东西没有用,一点用都没有。用这个的,嘿嘿,可以去种蘑菇了。
  所以,当是帮我个忙,不要用那些没有用的东西,也不要想觉得是Gentoo KDE组的人怎么怎么不行,想阻碍大发展。我们(译者认为是开发人员)真的知道什么东西到了可以用的时候了,什么不能用。至少我们知道这个 kdenewldflags 真是完完全全的废品。
回复 支持 反对

使用道具 举报

发表于 2009-6-29 13:13:41 | 显示全部楼层
哇。居然还翻译出来了。一愣一愣主要是因为这东西是一点都不了解,呵呵
回复 支持 反对

使用道具 举报

发表于 2009-6-29 14:05:01 | 显示全部楼层
我刚开始的时候就是这样,喜欢加这个加那个,最后终于“返璞归真”了……
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表