Message ID | 1453894822-4172-1-git-send-email-mjt@msgid.tls.msk.ru (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Wed, 27 Jan 2016 14:40:22 +0300 Michael Tokarev <mjt@tls.msk.ru> wrote: > Libtool support was needed to build shared library for libcacard. > Now there's no need to use libtool, and since the build system is > already complicated enough, we have a way to slightly de-complicate > it. > > Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> > --- Very good idea ! Reviewed-by: Greg Kurz <gkurz@linux.vnet.ibm.com> Just a few remarks: [greg@palmb qemu-master]$ grep -r libtool qemu-doc.texi:@item libtool: @uref{http://www.gnu.org/software/libtool/} Maybe we should drop that line as well ? Also, when reading http://wiki.qemu.org/Contribute/TrivialPatches, I wonder if this can be considered a trivial patch... Can you clarify ? > configure | 86 ++------------------------------------------------------------- > rules.mak | 18 ------------- > 2 files changed, 2 insertions(+), 102 deletions(-) > > diff --git a/configure b/configure > index 3506e44..fbcea37 100755 > --- a/configure > +++ b/configure > @@ -116,38 +116,6 @@ compile_prog() { > do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags > } > > -do_libtool() { > - local mode=$1 > - shift > - # Run the compiler, capturing its output to the log. > - echo $libtool $mode --tag=CC $cc "$@" >> config.log > - $libtool $mode --tag=CC $cc "$@" >> config.log 2>&1 || return $? > - # Test passed. If this is an --enable-werror build, rerun > - # the test with -Werror and bail out if it fails. This > - # makes warning-generating-errors in configure test code > - # obvious to developers. > - if test "$werror" != "yes"; then > - return 0 > - fi > - # Don't bother rerunning the compile if we were already using -Werror > - case "$*" in > - *-Werror*) > - return 0 > - ;; > - esac > - echo $libtool $mode --tag=CC $cc -Werror "$@" >> config.log > - $libtool $mode --tag=CC $cc -Werror "$@" >> config.log 2>&1 && return $? > - error_exit "configure test passed without -Werror but failed with -Werror." \ > - "This is probably a bug in the configure script. The failing command" \ > - "will be at the bottom of config.log." \ > - "You can run configure with --disable-werror to bypass this check." > -} > - > -libtool_prog() { > - do_libtool --mode=compile $QEMU_CFLAGS -c -fPIE -DPIE -o $TMPO $TMPC || return $? > - do_libtool --mode=link $LDFLAGS -o $TMPA $TMPL -rpath /usr/local/lib > -} > - > # symbolically link $1 to $2. Portable version of "ln -sf". > symlink() { > rm -rf "$2" > @@ -398,7 +366,6 @@ as="${AS-${cross_prefix}as}" > cpp="${CPP-$cc -E}" > objcopy="${OBJCOPY-${cross_prefix}objcopy}" > ld="${LD-${cross_prefix}ld}" > -libtool="${LIBTOOL-${cross_prefix}libtool}" > nm="${NM-${cross_prefix}nm}" > strip="${STRIP-${cross_prefix}strip}" > windres="${WINDRES-${cross_prefix}windres}" > @@ -1514,7 +1481,6 @@ EOF > if do_cc $QEMU_CFLAGS -Werror $flag -c -o $TMPO $TMPC && > compile_prog "-Werror $flag" ""; then > QEMU_CFLAGS="$QEMU_CFLAGS $flag" > - LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,$flag" > sp_on=1 > break > fi > @@ -1609,32 +1575,6 @@ EOF > fi > fi > > -# check for broken gcc and libtool in RHEL5 > -if test -n "$libtool" -a "$pie" != "no" ; then > - cat > $TMPC <<EOF > - > -void *f(unsigned char *buf, int len); > -void *g(unsigned char *buf, int len); > - > -void * > -f(unsigned char *buf, int len) > -{ > - return (void*)0L; > -} > - > -void * > -g(unsigned char *buf, int len) > -{ > - return f(buf, len); > -} > - > -EOF > - if ! libtool_prog; then > - echo "Disabling libtool due to broken toolchain support" > - libtool= > - fi > -fi > - > ########################################## > # __sync_fetch_and_and requires at least -march=i486. Many toolchains > # use i686 as default anyway, but for those that don't, an explicit > @@ -2241,21 +2181,6 @@ if test "$xen_pv_domain_build" = "yes" && > fi > > ########################################## > -# libtool probe > - > -if ! has $libtool; then > - libtool= > -fi > - > -# MacOSX ships with a libtool which isn't the GNU one; weed this > -# out by checking whether libtool supports the --version switch > -if test -n "$libtool"; then > - if ! "$libtool" --version >/dev/null 2>&1; then > - libtool= > - fi > -fi > - > -########################################## > # Sparse probe > if test "$sparse" != "no" ; then > if has cgcc; then > @@ -5501,13 +5426,8 @@ echo "MAKE=$make" >> $config_host_mak > echo "INSTALL=$install" >> $config_host_mak > echo "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak > echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak > -if test -n "$libtool"; then > - echo "INSTALL_PROG=\$(LIBTOOL) --mode=install $install -c -m 0755" >> $config_host_mak > - echo "INSTALL_LIB=\$(LIBTOOL) --mode=install $install -c -m 0644" >> $config_host_mak > -else > - echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak > - echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak > -fi > +echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak > +echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak > echo "PYTHON=$python" >> $config_host_mak > echo "CC=$cc" >> $config_host_mak > if $iasl -h > /dev/null 2>&1; then > @@ -5525,7 +5445,6 @@ echo "OBJCOPY=$objcopy" >> $config_host_mak > echo "LD=$ld" >> $config_host_mak > echo "NM=$nm" >> $config_host_mak > echo "WINDRES=$windres" >> $config_host_mak > -echo "LIBTOOL=$libtool" >> $config_host_mak > echo "CFLAGS=$CFLAGS" >> $config_host_mak > echo "CFLAGS_NOPIE=$CFLAGS_NOPIE" >> $config_host_mak > echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak > @@ -5544,7 +5463,6 @@ else > fi > echo "LDFLAGS=$LDFLAGS" >> $config_host_mak > echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak > -echo "LIBTOOLFLAGS=$LIBTOOLFLAGS" >> $config_host_mak > echo "LIBS+=$LIBS" >> $config_host_mak > echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak > echo "EXESUF=$EXESUF" >> $config_host_mak > diff --git a/rules.mak b/rules.mak > index 4551b9e..fc5ee41 100644 > --- a/rules.mak > +++ b/rules.mak > @@ -62,27 +62,9 @@ expand-objs = $(strip $(sort $(filter %.o,$1)) \ > # must link with the C++ compiler, not the plain C compiler. > LINKPROG = $(or $(CXX),$(CC)) > > -ifeq ($(LIBTOOL),) > LINK = $(call quiet-command, $(LINKPROG) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ > $(call process-archive-undefs, $1) \ > $(version-obj-y) $(call extract-libs,$1) $(LIBS)," LINK $(TARGET_DIR)$@") > -else > -LIBTOOL += $(if $(V),,--quiet) > -%.lo: %.c > - $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC $(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $($*.o-cflags) -c -o $@ $<," lt CC $@") > -%.lo: %.rc > - $(call quiet-command,$(LIBTOOL) --mode=compile --tag=RC $(WINDRES) -I. -o $@ $<,"lt RC $(TARGET_DIR)$@") > -%.lo: %.dtrace > - $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC dtrace -o $@ -G -s $<, " lt GEN $(TARGET_DIR)$@") > - > -LINK = $(call quiet-command,\ > - $(if $(filter %.lo %.la,$1),$(LIBTOOL) --mode=link --tag=CC \ > - )$(LINKPROG) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ > - $(call process-archive-undefs, $1)\ > - $(if $(filter %.lo %.la,$1),$(version-lobj-y),$(version-obj-y)) \ > - $(if $(filter %.lo %.la,$1),$(LIBTOOLFLAGS)) \ > - $(call extract-libs,$(1:.lo=.o)) $(LIBS),$(if $(filter %.lo %.la,$1),"lt LINK ", " LINK ")"$(TARGET_DIR)$@") > -endif > > %.asm: %.S > $(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -o $@ $<," CPP $(TARGET_DIR)$@")
27.01.2016 15:15, Greg Kurz wrote: [] > Just a few remarks: > > [greg@palmb qemu-master]$ grep -r libtool > qemu-doc.texi:@item libtool: @uref{http://www.gnu.org/software/libtool/} > > Maybe we should drop that line as well ? Hm, it looks like I forgot to commit that change, qemu-doc.texi is left locally modified but not comitted. Yes, definitely we should do that. btw, there's a handy tool `git grep' for that. > Also, when reading http://wiki.qemu.org/Contribute/TrivialPatches, I > wonder if this can be considered a trivial patch... Can you clarify ? well, I dunno. To me it is trivial, removing a bunch of unused code without touching the rest. Dunno. Thanks, /mjt
On Wed, 27 Jan 2016 15:36:38 +0300 Michael Tokarev <mjt@tls.msk.ru> wrote: > 27.01.2016 15:15, Greg Kurz wrote: > [] > > Just a few remarks: > > > > [greg@palmb qemu-master]$ grep -r libtool > > qemu-doc.texi:@item libtool: @uref{http://www.gnu.org/software/libtool/} > > > > Maybe we should drop that line as well ? > > Hm, it looks like I forgot to commit that change, > qemu-doc.texi is left locally modified but not comitted. > Yes, definitely we should do that. > > btw, there's a handy tool `git grep' for that. > Heh thanks :) > > Also, when reading http://wiki.qemu.org/Contribute/TrivialPatches, I > > wonder if this can be considered a trivial patch... Can you clarify ? > > well, I dunno. To me it is trivial, removing a bunch of unused code > without touching the rest. Dunno. > Ok. > Thanks, > > /mjt >
diff --git a/configure b/configure index 3506e44..fbcea37 100755 --- a/configure +++ b/configure @@ -116,38 +116,6 @@ compile_prog() { do_cc $QEMU_CFLAGS $local_cflags -o $TMPE $TMPC $LDFLAGS $local_ldflags } -do_libtool() { - local mode=$1 - shift - # Run the compiler, capturing its output to the log. - echo $libtool $mode --tag=CC $cc "$@" >> config.log - $libtool $mode --tag=CC $cc "$@" >> config.log 2>&1 || return $? - # Test passed. If this is an --enable-werror build, rerun - # the test with -Werror and bail out if it fails. This - # makes warning-generating-errors in configure test code - # obvious to developers. - if test "$werror" != "yes"; then - return 0 - fi - # Don't bother rerunning the compile if we were already using -Werror - case "$*" in - *-Werror*) - return 0 - ;; - esac - echo $libtool $mode --tag=CC $cc -Werror "$@" >> config.log - $libtool $mode --tag=CC $cc -Werror "$@" >> config.log 2>&1 && return $? - error_exit "configure test passed without -Werror but failed with -Werror." \ - "This is probably a bug in the configure script. The failing command" \ - "will be at the bottom of config.log." \ - "You can run configure with --disable-werror to bypass this check." -} - -libtool_prog() { - do_libtool --mode=compile $QEMU_CFLAGS -c -fPIE -DPIE -o $TMPO $TMPC || return $? - do_libtool --mode=link $LDFLAGS -o $TMPA $TMPL -rpath /usr/local/lib -} - # symbolically link $1 to $2. Portable version of "ln -sf". symlink() { rm -rf "$2" @@ -398,7 +366,6 @@ as="${AS-${cross_prefix}as}" cpp="${CPP-$cc -E}" objcopy="${OBJCOPY-${cross_prefix}objcopy}" ld="${LD-${cross_prefix}ld}" -libtool="${LIBTOOL-${cross_prefix}libtool}" nm="${NM-${cross_prefix}nm}" strip="${STRIP-${cross_prefix}strip}" windres="${WINDRES-${cross_prefix}windres}" @@ -1514,7 +1481,6 @@ EOF if do_cc $QEMU_CFLAGS -Werror $flag -c -o $TMPO $TMPC && compile_prog "-Werror $flag" ""; then QEMU_CFLAGS="$QEMU_CFLAGS $flag" - LIBTOOLFLAGS="$LIBTOOLFLAGS -Wc,$flag" sp_on=1 break fi @@ -1609,32 +1575,6 @@ EOF fi fi -# check for broken gcc and libtool in RHEL5 -if test -n "$libtool" -a "$pie" != "no" ; then - cat > $TMPC <<EOF - -void *f(unsigned char *buf, int len); -void *g(unsigned char *buf, int len); - -void * -f(unsigned char *buf, int len) -{ - return (void*)0L; -} - -void * -g(unsigned char *buf, int len) -{ - return f(buf, len); -} - -EOF - if ! libtool_prog; then - echo "Disabling libtool due to broken toolchain support" - libtool= - fi -fi - ########################################## # __sync_fetch_and_and requires at least -march=i486. Many toolchains # use i686 as default anyway, but for those that don't, an explicit @@ -2241,21 +2181,6 @@ if test "$xen_pv_domain_build" = "yes" && fi ########################################## -# libtool probe - -if ! has $libtool; then - libtool= -fi - -# MacOSX ships with a libtool which isn't the GNU one; weed this -# out by checking whether libtool supports the --version switch -if test -n "$libtool"; then - if ! "$libtool" --version >/dev/null 2>&1; then - libtool= - fi -fi - -########################################## # Sparse probe if test "$sparse" != "no" ; then if has cgcc; then @@ -5501,13 +5426,8 @@ echo "MAKE=$make" >> $config_host_mak echo "INSTALL=$install" >> $config_host_mak echo "INSTALL_DIR=$install -d -m 0755" >> $config_host_mak echo "INSTALL_DATA=$install -c -m 0644" >> $config_host_mak -if test -n "$libtool"; then - echo "INSTALL_PROG=\$(LIBTOOL) --mode=install $install -c -m 0755" >> $config_host_mak - echo "INSTALL_LIB=\$(LIBTOOL) --mode=install $install -c -m 0644" >> $config_host_mak -else - echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak - echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak -fi +echo "INSTALL_PROG=$install -c -m 0755" >> $config_host_mak +echo "INSTALL_LIB=$install -c -m 0644" >> $config_host_mak echo "PYTHON=$python" >> $config_host_mak echo "CC=$cc" >> $config_host_mak if $iasl -h > /dev/null 2>&1; then @@ -5525,7 +5445,6 @@ echo "OBJCOPY=$objcopy" >> $config_host_mak echo "LD=$ld" >> $config_host_mak echo "NM=$nm" >> $config_host_mak echo "WINDRES=$windres" >> $config_host_mak -echo "LIBTOOL=$libtool" >> $config_host_mak echo "CFLAGS=$CFLAGS" >> $config_host_mak echo "CFLAGS_NOPIE=$CFLAGS_NOPIE" >> $config_host_mak echo "QEMU_CFLAGS=$QEMU_CFLAGS" >> $config_host_mak @@ -5544,7 +5463,6 @@ else fi echo "LDFLAGS=$LDFLAGS" >> $config_host_mak echo "LDFLAGS_NOPIE=$LDFLAGS_NOPIE" >> $config_host_mak -echo "LIBTOOLFLAGS=$LIBTOOLFLAGS" >> $config_host_mak echo "LIBS+=$LIBS" >> $config_host_mak echo "LIBS_TOOLS+=$libs_tools" >> $config_host_mak echo "EXESUF=$EXESUF" >> $config_host_mak diff --git a/rules.mak b/rules.mak index 4551b9e..fc5ee41 100644 --- a/rules.mak +++ b/rules.mak @@ -62,27 +62,9 @@ expand-objs = $(strip $(sort $(filter %.o,$1)) \ # must link with the C++ compiler, not the plain C compiler. LINKPROG = $(or $(CXX),$(CC)) -ifeq ($(LIBTOOL),) LINK = $(call quiet-command, $(LINKPROG) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ $(call process-archive-undefs, $1) \ $(version-obj-y) $(call extract-libs,$1) $(LIBS)," LINK $(TARGET_DIR)$@") -else -LIBTOOL += $(if $(V),,--quiet) -%.lo: %.c - $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC $(CC) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) $($*.o-cflags) -c -o $@ $<," lt CC $@") -%.lo: %.rc - $(call quiet-command,$(LIBTOOL) --mode=compile --tag=RC $(WINDRES) -I. -o $@ $<,"lt RC $(TARGET_DIR)$@") -%.lo: %.dtrace - $(call quiet-command,$(LIBTOOL) --mode=compile --tag=CC dtrace -o $@ -G -s $<, " lt GEN $(TARGET_DIR)$@") - -LINK = $(call quiet-command,\ - $(if $(filter %.lo %.la,$1),$(LIBTOOL) --mode=link --tag=CC \ - )$(LINKPROG) $(QEMU_CFLAGS) $(CFLAGS) $(LDFLAGS) -o $@ \ - $(call process-archive-undefs, $1)\ - $(if $(filter %.lo %.la,$1),$(version-lobj-y),$(version-obj-y)) \ - $(if $(filter %.lo %.la,$1),$(LIBTOOLFLAGS)) \ - $(call extract-libs,$(1:.lo=.o)) $(LIBS),$(if $(filter %.lo %.la,$1),"lt LINK ", " LINK ")"$(TARGET_DIR)$@") -endif %.asm: %.S $(call quiet-command,$(CPP) $(QEMU_INCLUDES) $(QEMU_CFLAGS) $(QEMU_DGFLAGS) $(CFLAGS) -o $@ $<," CPP $(TARGET_DIR)$@")
Libtool support was needed to build shared library for libcacard. Now there's no need to use libtool, and since the build system is already complicated enough, we have a way to slightly de-complicate it. Signed-off-by: Michael Tokarev <mjt@tls.msk.ru> --- configure | 86 ++------------------------------------------------------------- rules.mak | 18 ------------- 2 files changed, 2 insertions(+), 102 deletions(-)