Debuginfo packages for Java
Andrew Haley
aph at redhat.com
Tue Nov 27 11:27:18 UTC 2007
Gary Benson writes:
> Andrew Haley wrote:
> > Jason L Tibbitts III writes:
> > > I'm having problems reviewing a package for some software written
> > > in Java. The problem is that the debuginfo package is generated
> > > without any source.
> >
> > The fix is to change /usr/lib/python2.5/site-packages/aotcompile.py,
> > which doesn't put the right pathnames into the object files.
> >
> > I've attached a patch. gbenson, please look this over. This is
> > my first ever Python hack, so You Have Been Warned. Input about
> > my (doubtless execrable) Python style welcome.
>
> I'd prefer to see this in aot-compile-rpm rather than aotcompile.py,
> my reason being that it relies on the fact that the sources are in the
> current directory which is true for rpm builds but not necessarily so
> otherwise. Something like the attached?
That works just as well as my patch for the RPM case, but is still
broken for non-RPM builds. However, I will go along with this if it's
the only way to get the fix in. We must stop generating bad debuginfo
for gcj-compiled packages.
Andrew.
>
> Cheers,
> Gary
>
> PS I don't read fedora-devel-list so please Cc me.
> --- aot-compile-rpm.orig 2007-10-12 09:05:38.000000000 +0100
> +++ aot-compile-rpm 2007-11-27 10:41:44.000000000 +0000
> @@ -28,6 +28,17 @@
> raise aotcompile.Error, "%s: unexpected output" % cmd
> return dir
>
> +def writeSourceList(srcdir, dstpath):
> + def visit(fp, dir, items):
> + for item in items:
> + path = os.path.join(dir, item)
> + if os.path.isfile(path):
> + print >>fp, path
> + dstdir = os.path.dirname(dstpath)
> + if not os.path.isdir(dstdir):
> + os.makedirs(dstdir)
> + os.path.walk(srcdir, visit, open(dstpath, "w"))
> +
> def copy(srcdir, dstdir, suffix):
> srcdir = os.path.join(srcdir, suffix.lstrip(os.sep))
> dstdir = os.path.join(dstdir, suffix.lstrip(os.sep))
> @@ -72,6 +83,10 @@
> os.path.basename(sys.argv[0]))
> sys.exit(1)
>
> + sourcelist = os.path.join(tmpdir, "sources.list")
> + writeSourceList(os.getcwd(), sourcelist)
> + compiler.gcjflags.append("-fsource-filename=" + sourcelist)
> +
> compiler.compile()
> copy(tmpdir, srcdir, dstdir)
>
--
Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, SL4 1TE, UK
Registered in England and Wales No. 3798903
More information about the fedora-devel-list
mailing list