Clang 在clearcase视图中,/proc/self/exe的结果不友好

Clang 在clearcase视图中,/proc/self/exe的结果不友好,clang,clearcase,Clang,Clearcase,如果我在clearcase视图中执行二进制文件,并在Linux上查看/proc/self/exe,我会看到如下内容: $ cd /proc/19220 $ ls -l exe lrwxrwxrwx 1 peeterj pdxdb2 0 2012-11-30 13:04 exe -> /home/peeterj/views/peeterj_clang-7.vws/.s/00024/8000028250b8f1d1llvm-config clang llvm config程序使用此输出试图找

如果我在clearcase视图中执行二进制文件,并在Linux上查看/proc/self/exe,我会看到如下内容:

$ cd /proc/19220
$ ls -l exe
lrwxrwxrwx 1 peeterj pdxdb2 0 2012-11-30 13:04 exe -> /home/peeterj/views/peeterj_clang-7.vws/.s/00024/8000028250b8f1d1llvm-config
clang llvm config程序使用此输出试图找出它所在的绝对完全限定路径(我假设argv[0]不是完全限定路径)

是否有办法在视图中找到与此相对应的位置。例如,在本例中,llvm config exe实际上位于:

/vbs/bldsupp/linuxamd64/clang/debug/bin

(我想知道修改clang的GetExecutablePath()函数来解决这个问题是否可行。)

这里没有简单的解决方案(不过对于旧版本的ClearCase):

“技术说明”建议:

局部修复

  • 在计划用于VOB/视图上下文的应用程序中使用
    getcwd()
    get\u current\u dir\u name()
    getwd()
  • 创建一个插入器库来拦截
    readlink()
    调用,并修改以使用上述任何调用来返回正确的数据
  • 原因是:

    /proc/self/exe
    getcwd
    成功时返回不正确的路径

    不幸的是,
    /proc/self/exe
    要[从VOB/View上下文中]返回正确的值,需要在Linux内核中进行更改,以允许MVFS“覆盖”当前设置

    IBMLTC一直致力于让Linux社区采用这一变化,这样我们就可以将新特性合并到MVFS中

    相关:。

    这里没有简单的解决方案(但对于旧版本的ClearCase):

    “技术说明”建议:

    局部修复

  • 在计划用于VOB/视图上下文的应用程序中使用
    getcwd()
    get\u current\u dir\u name()
    getwd()
  • 创建一个插入器库来拦截
    readlink()
    调用,并修改以使用上述任何调用来返回正确的数据
  • 原因是:

    /proc/self/exe
    getcwd
    成功时返回不正确的路径

    不幸的是,
    /proc/self/exe
    要[从VOB/View上下文中]返回正确的值,需要在Linux内核中进行更改,以允许MVFS“覆盖”当前设置

    IBMLTC一直致力于让Linux社区采用这一变化,这样我们就可以将新特性合并到MVFS中

    相关: