jira.codehaus.org

  • Log In Access more options
    • Online Help
    • Keyboard Shortcuts
    • About JIRA
    • JIRA Credits
    • What?s New
  • Dashboards Access more options (Alt+d)
  • Projects Access more options (Alt+p)
  • Issues Access more options (Alt+i)
  • RVM
  • RVM-432

Fix GNU classpath build on x86_64

  • Log In
  • Views
    • XML
    • Word
    • Printable

Details

  • Type: Improvement Improvement
  • Status: Open Open
  • Priority: Major Major
  • Resolution: Unresolved
  • Affects Version/s: 2.9.2
  • Fix Version/s: 3.1.3
  • Component/s: Runtime: Class Library: GNU Classpath
  • Labels:
    None
  • Environment:
    Linux x86_64
  • Patch Submitted:
    Yes

Description

It looks like at some point in the past, someone decided x86-64 couldn't do gtk, so conditionally disabled it. This patch turns that disabling off, and apparently it works.

  • Options
    • Sort By Name
    • Sort By Date
    • Ascending
    • Descending
    • Download All

Attachments

  1. Text File
    fixclasspathx64.patch
    07/Apr/08 10:06 PM
    0.6 kB
    Filip Pizlo
  2. Text File
    soo.txt
    07/Apr/08 10:06 PM
    0.5 kB
    Filip Pizlo

Activity

Ascending order - Click to sort in descending order
  • All
  • Comments
  • Work Log
  • History
  • Activity
Hide
Permalink
Ian Rogers added a comment - 08/Apr/08 2:04 AM

The issue was that early x86-64 linuxes only provided a 64bit GTk. As we compile with -m32 we need a 32bit GTk to link against. This often wasn't present on early x86-64 linuxes so we disabled the GTk peers. IIRC Dave Grove was interested in re-enabling this option too.

Show
Ian Rogers added a comment - 08/Apr/08 2:04 AM The issue was that early x86-64 linuxes only provided a 64bit GTk. As we compile with -m32 we need a 32bit GTk to link against. This often wasn't present on early x86-64 linuxes so we disabled the GTk peers. IIRC Dave Grove was interested in re-enabling this option too.
Hide
Permalink
David Grove added a comment - 08/Apr/08 2:52 PM

Doesn't work for me on the machines at Watson (RHEL5.1 x86_64). I've got (as far as I can tell) all of the 32 bit versions of the libraries (libcario, etc) installed in the standard places in addition to the 64bit versions, but the classpath build process doesn't seem to find them. It gets stuck wanting to link to the 64 bit versions.

[exec] 5932 problems (5932 warnings)/usr/bin/ld: skipping incompatible /usr/lib64/libgtk-x11-2.0.so when searching for -lgtk-x11-2.0
[exec] /usr/bin/ld: skipping incompatible /usr/lib64/libgdk-x11-2.0.so when searching for -lgdk-x11-2.0
[exec] /usr/bin/ld: skipping incompatible /usr/lib64/libatk-1.0.so when searching for -latk-1.0
[exec] /usr/bin/ld: skipping incompatible /usr/lib64/libpangocairo-1.0.so when searching for -lpangocairo-1.0
[exec] /usr/bin/ld: skipping incompatible /usr/lib64/libcairo.so when searching for -lcairo
[exec] /usr/bin/ld: skipping incompatible /usr/lib64/libcairo.so when searching for -lcairo
[exec] /usr/bin/ld: cannot find -lcairo
[exec] collect2: ld returned 1 exit status
[exec] make[3]: *** [libgtkpeer.la] Error 1
[exec] make[3]: Leaving directory `/home/dgrove/buildit/rvm-trunk/components/classpath/97.1p1/classpath/native/jni/gtk-peer'
[exec] make[2]: *** [all-recursive] Error 1
[exec] make[2]: Leaving directory `/home/dgrove/buildit/rvm-trunk/components/classpath/97.1p1/classpath/native/jni'
[exec] make[1]: *** [all-recursive] Error 1
[exec] make[1]: Leaving directory `/home/dgrove/buildit/rvm-trunk/components/classpath/97.1p1/classpath/native'
[exec] make: *** [all-recursive] Error 1

BUILD FAILED
/home/dgrove/buildit/rvm-trunk/build.xml:183: The following error occurred while executing this line:
/home/dgrove/buildit/rvm-trunk/build/components/classpath.xml:247: The following error occurred while executing this line:
/home/dgrove/buildit/rvm-trunk/build/components/base.xml:70: The following error occurred while executing this line:
/home/dgrove/buildit/rvm-trunk/build/components/base.xml:76: The following error occurred while executing this line:
/home/dgrove/buildit/rvm-trunk/build/components/classpath.xml:209: exec returned: 2

Looking for the libs via find:

[dgrove@legato /usr]$ find . -name "libgdk-x11*"
./lib64/libgdk-x11-2.0.so
./lib64/libgdk-x11-2.0.so.0.1000.4
./lib64/libgdk-x11-2.0.so.0
./lib/libgdk-x11-2.0.so
./lib/libgdk-x11-2.0.so.0.1000.4
./lib/libgdk-x11-2.0.so.

Show
David Grove added a comment - 08/Apr/08 2:52 PM Doesn't work for me on the machines at Watson (RHEL5.1 x86_64). I've got (as far as I can tell) all of the 32 bit versions of the libraries (libcario, etc) installed in the standard places in addition to the 64bit versions, but the classpath build process doesn't seem to find them. It gets stuck wanting to link to the 64 bit versions. [exec] 5932 problems (5932 warnings)/usr/bin/ld: skipping incompatible /usr/lib64/libgtk-x11-2.0.so when searching for -lgtk-x11-2.0 [exec] /usr/bin/ld: skipping incompatible /usr/lib64/libgdk-x11-2.0.so when searching for -lgdk-x11-2.0 [exec] /usr/bin/ld: skipping incompatible /usr/lib64/libatk-1.0.so when searching for -latk-1.0 [exec] /usr/bin/ld: skipping incompatible /usr/lib64/libpangocairo-1.0.so when searching for -lpangocairo-1.0 [exec] /usr/bin/ld: skipping incompatible /usr/lib64/libcairo.so when searching for -lcairo [exec] /usr/bin/ld: skipping incompatible /usr/lib64/libcairo.so when searching for -lcairo [exec] /usr/bin/ld: cannot find -lcairo [exec] collect2: ld returned 1 exit status [exec] make[3]: *** [libgtkpeer.la] Error 1 [exec] make[3]: Leaving directory `/home/dgrove/buildit/rvm-trunk/components/classpath/97.1p1/classpath/native/jni/gtk-peer' [exec] make[2]: *** [all-recursive] Error 1 [exec] make[2]: Leaving directory `/home/dgrove/buildit/rvm-trunk/components/classpath/97.1p1/classpath/native/jni' [exec] make[1]: *** [all-recursive] Error 1 [exec] make[1]: Leaving directory `/home/dgrove/buildit/rvm-trunk/components/classpath/97.1p1/classpath/native' [exec] make: *** [all-recursive] Error 1 BUILD FAILED /home/dgrove/buildit/rvm-trunk/build.xml:183: The following error occurred while executing this line: /home/dgrove/buildit/rvm-trunk/build/components/classpath.xml:247: The following error occurred while executing this line: /home/dgrove/buildit/rvm-trunk/build/components/base.xml:70: The following error occurred while executing this line: /home/dgrove/buildit/rvm-trunk/build/components/base.xml:76: The following error occurred while executing this line: /home/dgrove/buildit/rvm-trunk/build/components/classpath.xml:209: exec returned: 2 Looking for the libs via find: [dgrove@legato /usr]$ find . -name "libgdk-x11*" ./lib64/libgdk-x11-2.0.so ./lib64/libgdk-x11-2.0.so.0.1000.4 ./lib64/libgdk-x11-2.0.so.0 ./lib/libgdk-x11-2.0.so ./lib/libgdk-x11-2.0.so.0.1000.4 ./lib/libgdk-x11-2.0.so.
Hide
Permalink
David Grove added a comment - 08/Apr/08 3:41 PM

some googling suggests we should be using linux32 instead of -m32. I haven't tried to whack the ant scripts to do this, but maybe someone could take a look.

Show
David Grove added a comment - 08/Apr/08 3:41 PM some googling suggests we should be using linux32 instead of -m32. I haven't tried to whack the ant scripts to do this, but maybe someone could take a look.
Hide
Permalink
Ian Rogers added a comment - 14/Apr/08 5:01 AM

I can't see the linux32 option in GCC, the references I find still refer to -m32. As we're building with ant Filip can override the option not to compile the GTk peers on x86_64 using the following:
cp.enable.gtk-peer=" --enable-gtk-peer"
maybe we should provide another hook to do this and properly document it.

Show
Ian Rogers added a comment - 14/Apr/08 5:01 AM I can't see the linux32 option in GCC, the references I find still refer to -m32. As we're building with ant Filip can override the option not to compile the GTk peers on x86_64 using the following: cp.enable.gtk-peer=" --enable-gtk-peer" maybe we should provide another hook to do this and properly document it.
Hide
Permalink
David Grove added a comment - 14/Apr/08 7:11 AM

linux32 is a command.

It looks like perhaps we'd need to wrap the whole invocation of the GNU classpath build as args to linux32 and possibly drop the -m32 args to gcc. I haven't had a chance to play with this yet.

Show
David Grove added a comment - 14/Apr/08 7:11 AM linux32 is a command. It looks like perhaps we'd need to wrap the whole invocation of the GNU classpath build as args to linux32 and possibly drop the -m32 args to gcc. I haven't had a chance to play with this yet.
Hide
Permalink
Ian Rogers added a comment - 27/Apr/08 10:09 AM

Rescheduling for 2.9.4. Ideally a proper x86_64 build will supersede this issue. But investigating using linux32 can be done in the 2.9.4 time frame.

Show
Ian Rogers added a comment - 27/Apr/08 10:09 AM Rescheduling for 2.9.4. Ideally a proper x86_64 build will supersede this issue. But investigating using linux32 can be done in the 2.9.4 time frame.
Hide
Permalink
David Grove added a comment - 10/Oct/08 8:36 PM

Less than 1 week to 3.0.1; pushing off more items to 3.0.2. Move back if you disagree and/or have time to tackle the issue.

Show
David Grove added a comment - 10/Oct/08 8:36 PM Less than 1 week to 3.0.1; pushing off more items to 3.0.2. Move back if you disagree and/or have time to tackle the issue.
Hide
Permalink
David Grove added a comment - 06/May/09 4:47 PM

Defer to 3.1.1

Show
David Grove added a comment - 06/May/09 4:47 PM Defer to 3.1.1
Hide
Permalink
David Grove added a comment - 04/Jul/10 1:26 PM

bulk defer open issues to 3.1.2

Show
David Grove added a comment - 04/Jul/10 1:26 PM bulk defer open issues to 3.1.2

People

  • Assignee:
    Unassigned
    Reporter:
    Filip Pizlo
Vote (0)
Watch (0)

Dates

  • Created:
    07/Apr/08 10:06 PM
    Updated:
    22/Dec/11 5:50 AM
  • Atlassian JIRA (v5.0.4#731-sha1:3aa7374)
  • Report a problem
  • Powered by a free Atlassian JIRA open source license for Codehaus. Try JIRA - bug tracking software for your team.