Summary: | libXaw is created with incorrect version numbers on IRIX | ||
---|---|---|---|
Product: | xorg | Reporter: | Stuart Shelton <srcshelton> |
Component: | Lib/Xaw | Assignee: | Xorg Project Team <xorg-team> |
Status: | RESOLVED WONTFIX | QA Contact: | Xorg Project Team <xorg-team> |
Severity: | blocker | ||
Priority: | high | CC: | srcshelton |
Version: | unspecified | ||
Hardware: | SGI | ||
OS: | IRIX | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Stuart Shelton
2009-03-26 10:38:10 UTC
Hi guys, I realise that IRIX is, to say the least, a minority platform - but surely this bug indicates a pretty significant flaw in the build system? In any case, the workaround required (manually hex-editing the libXaw DSO binaries and changing the .la files) is manual, error-prone, and horribly hacky. Additionally, libXaw seems to be the only Xorg component affected. Since this is hugely problematic for building a significant number of X applications on IRIX, please could this be looked at as a matter of urgency? (If an IRIX machine to test on is unavailable then please let me know - I can arrange this if required) Many thanks, Stuart (In reply to comment #1) > I realise that IRIX is, to say the least, a minority platform - but surely this > bug indicates a pretty significant flaw in the build system? More likely just a bug in libXaw's special hacks for building it's multiple ABI versions. The combination of only affecting a platform few have access to in a library no one actively maintains makes it unlikely to be fixed quickly. Since the problem seems to be an off-by-one issue, I was led to the following solution: --- ltmain.sh.dist +++ ltmain.sh @@ -6311,11 +6311,11 @@ func_mode_link () ;; irix | nonstopux) - if test "X$lt_irix_increment" = "Xno"; then + #if test "X$lt_irix_increment" = "Xno"; then func_arith $current - $age - else - func_arith $current - $age + 1 - fi + #else + #func_arith $current - $age + 1 + #fi major=$func_arith_result case $version_type in ... which appears to work. Presumably the 'lt_irix_increment' logic is there for a reason, though, so I'm not sure whether this might break any other part of the build. So far, the new (and correctly numbered) library is working for me, though. (In reply to comment #3) > Since the problem seems to be an off-by-one issue, I was led to the following > solution: > > --- ltmain.sh.dist > +++ ltmain.sh > @@ -6311,11 +6311,11 @@ func_mode_link () > ;; > > irix | nonstopux) > - if test "X$lt_irix_increment" = "Xno"; then > + #if test "X$lt_irix_increment" = "Xno"; then > func_arith $current - $age > - else > - func_arith $current - $age + 1 > - fi > + #else > + #func_arith $current - $age + 1 > + #fi > major=$func_arith_result > > case $version_type in > > ... which appears to work. Presumably the 'lt_irix_increment' logic is there > for a reason, though, so I'm not sure whether this might break any other part > of the build. > > So far, the new (and correctly numbered) library is working for me, though. Not an appropriate fix, since ltmain.sh is a generated file. See the section labeled "fix libtool to set SONAME to libXaw.so.$major" in configure.ac. You simply need to follow the example of win32 and darwin. The "fix" would be setting lt_irix_increment=no However implementing this fix would cause more problems than it would solve as the new files would be named correctly and conflict with the old ones, so everything that depends on libXaw would need to be rebuilt. This kind of binary compatibility headache is not worth making the version numbers more human friendly. Let's just suck it up and realize that IRIX will always be off-by-one here. Please reopen if you disagree, and provide a patch to set lt_irix_increment=no |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.