Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

CFT: print/pdftk port compiled with Java compiler from gcc 4.5

8 views
Skip to first unread message

Greg Larkin

unread,
Apr 8, 2010, 9:54:51 PM4/8/10
to FreeBSD Ports ML, Jouko Lumijärvi, Tsurutani Naoki, Gerald Pfeifer
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Hi everyone,

I maintain the print/pdftk port, and lately it's been getting harder to
support compiling it with gcj42 from the lang/gcc42 port. If lang/gcc45
is also installed on the machine, then gcj42 uses the wrong binutils and
hilarity ensues.

It's been on my task list to enable gcj45 in the lang/gcc45 port and get
pdftk compiled with it. I have an experimental patchset that does just
that, and I was hoping some folks might test it on various OS versions
and architectures. In the mean time, I'll run through the various
tinderbox builds that I have available.

You can find the patches here:

http://people.freebsd.org/~glarkin/diffs/gcc45%2bgcj.diff
http://people.freebsd.org/~glarkin/diffs/pdftk%2bgcc45.diff

Fetch each patch file into /usr/ports and then run:

patch < gcc45+gcj.diff
patch < pdftk+gcc45.diff
cd print/pdftk && make install clean

If all goes well, you will be left with a working pdftk executable,
successfully compiled with gcj45. If you run into any problems, please
let me know and include the output of "uname -a" and the output from the
make process.

Thank you,
Greg
- --
Greg Larkin

http://www.FreeBSD.org/ - The Power To Serve
http://www.sourcehosting.net/ - Ready. Set. Code.
http://twitter.com/sourcehosting/ - Follow me, follow you
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iD8DBQFLvojr0sRouByUApARAuL0AJ9v5/utZBTVyepCfZe1Q8hzIzjRdwCghMOH
18wwBxJ8gUHGn+W0IOnvxwE=
=eNMj
-----END PGP SIGNATURE-----

Gerald Pfeifer

unread,
Apr 9, 2010, 1:26:33 PM4/9/10
to Greg Larkin, Jouko Lumijärvi, Tsurutani Naoki, FreeBSD Ports ML
On Thu, 8 Apr 2010, Greg Larkin wrote:
> I maintain the print/pdftk port, and lately it's been getting harder to
> support compiling it with gcj42 from the lang/gcc42 port. If lang/gcc45
> is also installed on the machine, then gcj42 uses the wrong binutils and
> hilarity ensues.

Thanks for pushing on that front, I believe it's the right thing to do.

As for the lang/gcc42 issue, I have an idea of how to fix that and will
give it try now and share the patch if it works for me.

Gerald

Tsurutani Naoki

unread,
Apr 10, 2010, 9:33:48 AM4/10/10
to gla...@freebsd.org, Jouko_Lumij舐vi, Gerald Pfeifer, FreeBSD Ports ML
Greg Larkin <gla...@freebsd.org> wrote:

> You can find the patches here:
>
> http://people.freebsd.org/~glarkin/diffs/gcc45%2bgcj.diff
> http://people.freebsd.org/~glarkin/diffs/pdftk%2bgcc45.diff
>
> Fetch each patch file into /usr/ports and then run:
>
> patch < gcc45+gcj.diff
> patch < pdftk+gcc45.diff
> cd print/pdftk && make install clean
>
> If all goes well, you will be left with a working pdftk executable,
> successfully compiled with gcj45. If you run into any problems, please
> let me know and include the output of "uname -a" and the output from the
> make process.

1. FreeBSD/amd64 8-STABLE : building OK, but failed to run.
% uname -a
FreeBSD h116.65.226.10.32118.vlan.kuins.net 8.0-STABLE FreeBSD 8.0-STABLE #22: Sat Feb 13 14:06:06 JST 2010 turu...@h116.65.226.10.32118.vlan.kuins.net:/usr/obj/usr/src/sys/POLYMER13 amd64
% pdftk /usr/local/share/doc/OpenEXR/TechnicalIntroduction.pdf output out.pdf owner_pw foopass
/libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11 required by /usr/local/bin/pdftk not found

2. FreeBSD/amd64 8-STABLE, with LANG=ja_JP.eucJP : building failure.
gmake -C "/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs/com/lowagie/text";
gmake[2]: Entering directory `/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs/com/lowagie/text'
/usr/local/bin/gcj45 -L/usr/local/lib -O2 -w --encoding=UTF-8 --classpath="/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs" -c Anchor.java -o Anchor.o
/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs/com/lowagie/text/markup/MarkupParser.java:186: error: String literal is not properly closed by a double-quote
if (value.startsWith("〒)
^^^
...
112 problems (112 errors)
gmake[2]: *** [Anchor.o] Error 1
gmake[2]: Leaving directory `/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs/com/lowagie/text'
gmake[1]: *** [itext] Error 2
gmake[1]: Leaving directory `/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs'
gmake: *** [java_libs] Error 2
*** Error code 1
(some messages are translated).

3, 4. FreeBSD/i386 8-STABLE : just the same on amd64.
% uname -a
FreeBSD h120.65.226.10.32118.vlan.kuins.net 8.0-STABLE FreeBSD 8.0-STABLE #22: Sat Feb 13 14:53:25 JST 2010 turu...@h120.65.226.10.32118.vlan.kuins.net:/usr/local/work/usr/obj/usr/src/sys/POLYMER i386
% pdftk /usr/local/share/doc/OpenEXR/TechnicalIntroduction.pdf output suzu.128.pdf owner_pw foopass
/libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11 required by /usr/local/bin/pdftk not found


---
Tsurutani Naoki
turu...@scphys.kyoto-u.ac.jp

Gerald Pfeifer

unread,
Apr 12, 2010, 9:19:23 AM4/12/10
to Greg Larkin, Jouko Lumijärvi, Tsurutani Naoki, FreeBSD Ports ML
On Fri, 9 Apr 2010, Gerald Pfeifer wrote:
> As for the lang/gcc42 issue, I have an idea of how to fix that and will
> give it try now and share the patch if it works for me.

The patch below passes testing for me, and I consider it The Right
Thing[TM] directionally, too. The two actual changes are the
addition of --with-as=/usr/bin/as and --with-ld=/usr/bin/ld.

I have not committed it yet, but am planning on doing so and
definitely am interested in whether this changes (improves) things
for you.

That said, please do not stop on moving from GCC 4.2 to GCC 4.4 when
it comes to Java, even in case this patch works for you. :-)

Gerald

Index: Makefile
===================================================================
RCS file: /home/pcvs/ports/lang/gcc42/Makefile,v
retrieving revision 1.356
diff -r1.356 Makefile
56,60c56
< CONFIGURE_ARGS+= --disable-nls \
< --with-system-zlib \
< --with-libiconv-prefix=${LOCALBASE} \
< --with-gmp=${LOCALBASE} \
< --program-suffix=${SUFFIX} \
---
> CONFIGURE_ARGS+=--disable-nls \
63c59,65
< --with-gxx-include-dir=${TARGLIB}/include/c++/
---
> --program-suffix=${SUFFIX} \
> --with-as=/usr/bin/as \
> --with-gmp=${LOCALBASE} \
> --with-gxx-include-dir=${TARGLIB}/include/c++/ \
> --with-ld=/usr/bin/ld \
> --with-libiconv-prefix=${LOCALBASE} \
> --with-system-zlib

Greg Larkin

unread,
Apr 12, 2010, 11:25:51 PM4/12/10
to Gerald Pfeifer, Jouko Lumijärvi, Tsurutani Naoki, FreeBSD Ports ML
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Thank you Gerald, I'll give that a try with gcc 4.2 and gcc 4.5
installed. I think we're getting close with gcj 4.5, assuming my fix
for duplicate Java symbols is acceptable.

I need to do some more tinderbox builds and testing and clear up some
other errors reported by users, but maybe I'll be able to send you the
patches for approval next week.

Thank you,
Greg
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (Darwin)


Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkvD5D8ACgkQ0sRouByUApC4AgCfS/QrY7PTkegsFRJiEE5WdxH5
GcIAoIdY7KkdUV+ORjj0G9iJcipt31jK
=HuD1
-----END PGP SIGNATURE-----

Greg Larkin

unread,
Apr 12, 2010, 11:22:44 PM4/12/10
to Tsurutani Naoki, Jouko_Lumij舐vi, Gerald Pfeifer, FreeBSD Ports ML
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Tsurutani Naoki wrote:
> Greg Larkin <gla...@freebsd.org> wrote:
>
>> You can find the patches here:
>>
>> http://people.freebsd.org/~glarkin/diffs/gcc45%2bgcj.diff
>> http://people.freebsd.org/~glarkin/diffs/pdftk%2bgcc45.diff
>>
>> Fetch each patch file into /usr/ports and then run:
>>
>> patch < gcc45+gcj.diff
>> patch < pdftk+gcc45.diff
>> cd print/pdftk && make install clean
>>
>> If all goes well, you will be left with a working pdftk executable,
>> successfully compiled with gcj45. If you run into any problems, please
>> let me know and include the output of "uname -a" and the output from the
>> make process.
>
> 1. FreeBSD/amd64 8-STABLE : building OK, but failed to run.
> % uname -a
> FreeBSD h116.65.226.10.32118.vlan.kuins.net 8.0-STABLE FreeBSD 8.0-STABLE #22: Sat Feb 13 14:06:06 JST 2010 turu...@h116.65.226.10.32118.vlan.kuins.net:/usr/obj/usr/src/sys/POLYMER13 amd64
> % pdftk /usr/local/share/doc/OpenEXR/TechnicalIntroduction.pdf output out.pdf owner_pw foopass
> /libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11 required by /usr/local/bin/pdftk not found

Hi Tsurutani,

Can you run the following command for me on your system?

ldconfig -r | grep gcc45

If there's no output from that command, then something went wrong with
the ldconfig stage of the pdftk port installation. Would you mind
rebuilding pdftk and capturing the output of "make install clean" for
me? I should be able to tell if something is going wrong during
installation.

Before you do that, though, please test my theory by doing the following:

ldconfig -v -m /usr/local/lib/gcc45

When that command finishes, try running pdftk again. If it works, then
we know there's something wrong with the ldconfig step, and the output
of the port build/installation will help me troubleshoot it.

>
> 2. FreeBSD/amd64 8-STABLE, with LANG=ja_JP.eucJP : building failure.
> gmake -C "/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs/com/lowagie/text";
> gmake[2]: Entering directory `/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs/com/lowagie/text'
> /usr/local/bin/gcj45 -L/usr/local/lib -O2 -w --encoding=UTF-8 --classpath="/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs" -c Anchor.java -o Anchor.o
> /usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs/com/lowagie/text/markup/MarkupParser.java:186: error: String literal is not properly closed by a double-quote
> if (value.startsWith("〒)
> ^^^
> ...
> 112 problems (112 errors)
> gmake[2]: *** [Anchor.o] Error 1
> gmake[2]: Leaving directory `/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs/com/lowagie/text'
> gmake[1]: *** [itext] Error 2
> gmake[1]: Leaving directory `/usr/local/work/usr/ports/print/pdftk/work/pdftk-1.41/java_libs'
> gmake: *** [java_libs] Error 2
> *** Error code 1
> (some messages are translated).

I'm not sure what's going on here, but I'll have a look at the source
file in question to see if there's a problem with it.

>
> 3, 4. FreeBSD/i386 8-STABLE : just the same on amd64.
> % uname -a
> FreeBSD h120.65.226.10.32118.vlan.kuins.net 8.0-STABLE FreeBSD 8.0-STABLE #22: Sat Feb 13 14:53:25 JST 2010 turu...@h120.65.226.10.32118.vlan.kuins.net:/usr/local/work/usr/obj/usr/src/sys/POLYMER i386
> % pdftk /usr/local/share/doc/OpenEXR/TechnicalIntroduction.pdf output suzu.128.pdf owner_pw foopass
> /libexec/ld-elf.so.1: /usr/lib/libstdc++.so.6: version GLIBCXX_3.4.11 required by /usr/local/bin/pdftk not found
>

These errors should be fixed by the same solution as in #1 above.

Thank you,
Greg

>
> ---
> Tsurutani Naoki
> turu...@scphys.kyoto-u.ac.jp

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.10 (Darwin)


Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAkvD44QACgkQ0sRouByUApBzJgCeKdXKrPKinVJzBvhHbgXdViri
/5gAni8lxEExcY1EYx8xnGyoVcbKAyVf
=nH9T
-----END PGP SIGNATURE-----

Tsurutani Naoki

unread,
Apr 13, 2010, 12:36:10 AM4/13/10
to gla...@freebsd.org, Jouko_Lumij舐vi, Gerald Pfeifer, FreeBSD Ports ML
Greg Larkin <gla...@freebsd.org> wrote:

> Can you run the following command for me on your system?
>
> ldconfig -r | grep gcc45

% ldconfig -r | grep gcc45
search directories:
/lib:/usr/lib:/usr/lib/compat:/usr/local/lib:/usr/local/lib/compat/pkg:/usr/site/lib:/usr/loc
al/lib/compat:/usr/local/lib/evolution/2.28:/usr/local/lib/gcc/i386-portbld-
freebsd8.0/3.4.6:/usr/local/lib/gcc44:/usr/local/lib/gcc45:/usr/local/lib/gegl-
0.0:/usr/local/lib/graphviz:/usr/local/lib/mysql:/usr/local/lib/nss:/usr/local/lib/pth:/usr/l
ocal/lib/qt4:/usr/local/lib/wine:/usr/local/lib/zsh
1159:-lstdc++.6 => /usr/local/lib/gcc45/libstdc++.so.6
1160:-lmudflap.0 => /usr/local/lib/gcc45/libmudflap.so.0
1161:-lmudflapth.0 => /usr/local/lib/gcc45/libmudflapth.so.0
1162:-lssp.0 => /usr/local/lib/gcc45/libssp.so.0
1163:-lgcc_s.1 => /usr/local/lib/gcc45/libgcc_s.so.1
1164:-lgfortran.3 => /usr/local/lib/gcc45/libgfortran.so.3
1165:-lffi.4 => /usr/local/lib/gcc45/libffi.so.4
1166:-lgcj.11 => /usr/local/lib/gcc45/libgcj.so.11
1167:-lgij.11 => /usr/local/lib/gcc45/libgij.so.11
1168:-lgcj-tools.11 => /usr/local/lib/gcc45/libgcj-tools.so.11
1169:-lgomp.1 => /usr/local/lib/gcc45/libgomp.so.1

% ldconfig -r | grep libstdc++.so.6
80:-lstdc++.6 => /usr/lib/libstdc++.so.6
848:-lstdc++.6 => /usr/local/lib/compat/pkg/libstdc++.so.6
1146:-lstdc++.6 => /usr/local/lib/gcc/i386-portbld-freebsd8.0/3.4.6/libstdc++.so.6
1148:-lstdc++.6 => /usr/local/lib/gcc44/libstdc++.so.6
1159:-lstdc++.6 => /usr/local/lib/gcc45/libstdc++.so.6

Setting LD_LIBRARY_PATH=/usr/local/lib/gcc45 before running pdftk
can avoid this error.
I am not familiar with rpath, but something is wrong arround it, I think.
gcc can embed some rpath infomation when building pdftk,
or we must add some linker option about rpath in building pdftk.
In any case, pdftk must have runtime dependence on gcc45...


---
鶴谷直樹
turu...@scphys.kyoto-u.ac.jp

0 new messages