c++filt and addr2line [was Re: c++filt causing flashing console windows]

Ranjit Mathew rmathew@hotmail.com
Wed Sep 10 05:08:00 GMT 2003


Ranjit Mathew wrote:
> Andrew Haley wrote:
>> > Ditto for using libbfd v/s invoking addr2line,
>>>>This idea seems to come up once or twice a year.
>>>>The problem is not technical: it is legal. We cannot do this unless
>>the licences of libbfd and libiberty are changed. libiberty is LGPL,
>>which might be OK in some cases, but it is not the same as
>>GPL+exception. We can't license libgcj under two licences.
>>> But we (GCJ/libgcj and the rest of GCC) already use lots
> of functions from libiberty! For example, I was the one
> who submitted a patch to use the "xregex" functions
> from libiberty for systems that do not have their
> own regex functions in libc.

Sorry, I was wrong - only the programs in "gcc/java" use
libiberty - AFAICT, libgcj does not use libiberty. The
patch I was referring to was submitted for "fastjar" and
not something in libgcj.
libiberty seems to not have a single uniform license (I
think Nathanael Nerode was trying to address this). In
particular, "cp-demangle.c" seems to be under the GPL
with the following addition:
----------------------------- 8< -----------------------------
In addition to the permissions in the GNU General Public License, the
Free Software Foundation gives you unlimited permission to link the
compiled version of this file into combinations with other programs,
and to distribute those combinations without any restriction coming
from the use of this file. (The General Public License restrictions
do apply in other respects; for example, they cover modification of
the file, and distribution when not linked into a combined
executable.)
----------------------------- 8< -----------------------------
IANAL, much less an expert on licenses, but is this
compatible with libgcj's GPL+exception license?
On the other hand, the problem that this solves is also
solved in a simpler manner by using reflection data as
Andrew points out.
But line number generation requires addr2line (or libbfd,
which is fully GPL and hence cannot be used, apparently)
which needs "raw" (mangled) names.
So cp_demangle( ) can still be used to save the spawning
of c++filt, *if the licenses are compatible*. On my
machine, I have an older c++filt that does not understand
"style=java".
Ranjit.
-- 
Ranjit Mathew Email: rmathew AT hotmail DOT com
Bangalore, INDIA. Web: http://ranjitmathew.tripod.com/


More information about the Java mailing list

AltStyle によって変換されたページ (->オリジナル) /