Hi Josselin,

* Josselin Mouette wrote on Wed, May 17, 2006 at 01:54:30AM CEST:
> The attached patch is applied to libgnome, to avoid argument reordering
> for -Wl,--as-needed.
> 
> It is only a hack, but it works. With it, libgnome has reduced
> dependencies as expected.

It's not bad, but it's missing a few minor things:

* "-Wl,--no-as-needed" should be treated in the same way.

* In order to support multiple sequences of
    -Wl,--as-needed ... -Wl,--no-as-needed
  it is necessary to turn off duplicate removal in this loop
  (around line 3019):

        for var in $vars dependency_libs; do
          # Add libraries to $var in reverse order
          eval tmp_libs=\"\$$var\"
          new_libs=
          for deplib in $tmp_libs; do
          ...
            case $deplib in
            -L*) new_libs="$deplib $new_libs" ;;
            -R*) ;;
            -Wl,*) new_libs="$deplib $new_libs" ;;
            *)
              # And here is the reason: when a library appears more
            ...
        done

* In order for this to also work on non-Debian systems, more precisely,
  on systems without link_all_deplibs=no, the loop around line 2906,
          if test "$link_all_deplibs" != no; then
            # Add the search paths of all dependency libraries
            for deplib in $dependency_libs; do
              case $deplib in
              -L*) path="$deplib" ;;
           ...
          fi

  needs to be treated similarly.


Hope this helps.  I haven't tested your patch in any way yet.

Cheers,
Ralf


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to