Date: Thu, 2 Apr 1998 17:59:19 -0800 (PST) From: yergeau@gloworm.stanford.edu To: FreeBSD-gnats-submit@FreeBSD.ORG Cc: yergeau@gloworm.stanford.edu Subject: bin/6198: /bin/ld's demangling of C++ names breaks -frepo feature of egcs Message-ID: <199804030159.RAA06174@localhost.Stanford.EDU>
next in thread | raw e-mail | index | archive | help
>Number: 6198
>Category: bin
>Synopsis: demangling C++ names breaks the Cygnus -frepo hack
>Confidential: no
>Severity: non-critical
>Priority: low
>Responsible: freebsd-bugs
>State: open
>Quarter:
>Keywords:
>Date-Required:
>Class: change-request
>Submitter-Id: current-users
>Arrival-Date: Thu Apr 2 18:00:01 PST 1998
>Last-Modified:
>Originator: Dan Yergeau
>Organization:
>Release: FreeBSD 2.2.5-RELEASE i386
>Environment:
FreeBSD 2.2.5-RELEASE
gcc-2.7.2.x with the gcc-2.7.2-repo-bsd.patch
or egcs-1.0.2 with tlink.c replaced by the one from the above patch
>Description:
If /usr/bin/ld demangles C++ names, the automatic template
instantiation feature added by the Cygnus -frepo/tlink hack (also in
egcs) breaks. The -frepo/tlink hack relies on raw encoded names
being reported as missing symbols so that collect2 knows what needs
to be recompiled in order to instantiate templates.
>How-To-Repeat:
>Fix:
Although it is nice to have the names demangled automatically, ld is
probably not the best place to do it (or, at least not as a
compiled-in default). I'll suggest either
1) altering the current hardcoded demangling to be selectable by a
ld option or an environment variable (off by default, but would
be turned on by the /usr/bin/{gcc,c++,g++} drivers).
2) disabling the current hardcoded demangling and just alter the
compiler driver to pipe ld output through c++filt (or redirect
to a file and filter that file). The only potential gotcha is
in handling stdout vs. stderr.
No other ld that I know of tries to demangle C++ names. Compilers
that appear to do so (e.g. Sun's SC4.x CC) seem to use the second
approach.
I'm a little suprised that neither FSF nor Cygnus have implemented
demangling ld errors.
Dan
>Audit-Trail:
>Unformatted:
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199804030159.RAA06174>
