Thread: rm static libraries before rebuilding

rm static libraries before rebuilding

From
Noah Misch
Date:
We build static libraries with "ar crs" or "ar cr".  If the static library
already exists in the build directory, those commands will add new members and
replace existing members.  They will not remove members present in the
existing library but not named on the "ar" command line.  This matters when,
for example, you rerun ./configure in a way that removes a file from
$(LIBOBJS).  libpgport carries the obsolete member until "make clean".  Let's
fix that by issuing "rm -f" before running $(AR).  I would back-patch this.

Attachment

Re: rm static libraries before rebuilding

From
Tom Lane
Date:
Noah Misch <noah@leadboat.com> writes:
> We build static libraries with "ar crs" or "ar cr".  If the static library
> already exists in the build directory, those commands will add new members and
> replace existing members.  They will not remove members present in the
> existing library but not named on the "ar" command line.  This matters when,
> for example, you rerun ./configure in a way that removes a file from
> $(LIBOBJS).  libpgport carries the obsolete member until "make clean".  Let's
> fix that by issuing "rm -f" before running $(AR).  I would back-patch this.

+1 ... I doubt anybody's thought about this.
        regards, tom lane



Re: rm static libraries before rebuilding

From
Alvaro Herrera
Date:
Noah Misch wrote:
> We build static libraries with "ar crs" or "ar cr".  If the static library
> already exists in the build directory, those commands will add new members and
> replace existing members.  They will not remove members present in the
> existing library but not named on the "ar" command line.  This matters when,
> for example, you rerun ./configure in a way that removes a file from
> $(LIBOBJS).  libpgport carries the obsolete member until "make clean".  Let's
> fix that by issuing "rm -f" before running $(AR).  I would back-patch this.

+1 -- I was (as I expect many were) bitten by this recently.


-- 
Álvaro Herrera                http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services