Skip to Content.
Sympa Menu

sm-discuss - Re: [SM-Discuss] [PATCH] sorcery: added as_needed optimization option

sm-discuss AT lists.ibiblio.org

Subject: Public SourceMage Discussion List

List archive

Chronological Thread  
  • From: Paul Vinogradov <vin.public AT gmail.com>
  • To: sm-discuss AT lists.ibiblio.org
  • Subject: Re: [SM-Discuss] [PATCH] sorcery: added as_needed optimization option
  • Date: Sun, 23 Mar 2014 00:45:50 -0400

A changelog entry maybe?

В Sat, 22 Mar 2014 05:17:22 +0900
Remko van der Vossen <wich AT yuugen.jp> пишет:

> as_needed will add -Wl,--as-needed to LDFLAGS, which will cause the linker
> to
> emit DT_NEEDED entries only for directly used libraries. This prevents
> programs and libraries that only indirectly depend on some library from
> breaking when that library has an soname change. A scenario which is very
> common with libtool using build processes.
> ---
> usr/sbin/sorcery | 4 +++-
> var/lib/sorcery/modules/libsorcery | 7 ++++++-
> 2 files changed, 9 insertions(+), 2 deletions(-)
>
> diff --git a/usr/sbin/sorcery b/usr/sbin/sorcery
> index 53bc512..c58f921 100755
> --- a/usr/sbin/sorcery
> +++ b/usr/sbin/sorcery
> @@ -750,6 +750,7 @@ optimization_menu(){
> local SPEEDY_HELP="Optimize generated code, conflicts with
> 'tiny' (CFLAGS=$FAST)" local STRIP_HELP="Remove all symbol table and
> relocation (debugging) information (LDFLAGS=-s)" local
> TINY_HELP="Optimize to smaller generated code, conflicts with
> 'speedy' (CFLAGS=$SMALL)"
> + local AS_NEEDED_HELP="Only emit DT_NEEDED entries for directly used
> libraries (LDFLAGS=-Wl,--as-needed)"
> if OPTIMIZATIONS=`eval $DIALOG ' --title "$OPT_TITLE" \
> --no-cancel \
> @@ -762,7 +763,8 @@ optimization_menu(){
> "risky" " +speed" "$RISKY" "$RISKY_HELP" \
> "speedy" " +size ++speed" "$SPEEDY" "$SPEEDY_HELP" \
> "strip" " --size" "$STRIP" "$STRIP_HELP" \
> - "tiny" " -size +speed" "$TINY" "$TINY_HELP"'`
> + "tiny" " -size +speed" "$TINY" "$TINY_HELP" \
> + "as_needed" "only direct libs" "$AS_NEEDED" "$AS_NEEDED_HELP"'`
> then
>
> OPTIMIZATIONS=`echo ${OPTIMIZATIONS} | tr '\n' ' '`
> diff --git a/var/lib/sorcery/modules/libsorcery
> b/var/lib/sorcery/modules/libsorcery index 2abd865..c89f0ae 100755
> --- a/var/lib/sorcery/modules/libsorcery
> +++ b/var/lib/sorcery/modules/libsorcery
> @@ -617,7 +617,7 @@ function optimize() {
> debug "libsorcery" "In optimize()"
>
> unset CFLAGS CXXFLAGS LDFLAGS CPPFLAGS
> - unset FAST PRELINK RISKY SMALL SPEEDY STRIP TINY
> + unset FAST PRELINK RISKY SMALL SPEEDY STRIP TINY AS_NEEDED
>
> # if user specified --no-opts then use only the args from the command
> line
> # otherwise do the normal stuff
> @@ -663,6 +663,11 @@ function optimize() {
> TINY="on"
> ;;
>
> + as_needed)
> + LDFLAGS="$LDFLAGS -Wl,--as-needed"
> + AS_NEEDED="on"
> + ;;
> +
> esac
> done
> # use echo to crunch all the whitespace out for broken configure
> scripts


--
Sincerely yours Paul Vinogradov

Attachment: signature.asc
Description: PGP signature




Archive powered by MHonArc 2.6.24.

Top of Page