rm static libraries before rebuilding

Started by Noah Mischabout 11 years ago3 messageshackers
Jump to latest
#1Noah Misch
noah@leadboat.com

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.

Attachments:

staticlib-rm-v1.patchtext/plain; charset=us-asciiDownload+7-0
#2Tom Lane
tgl@sss.pgh.pa.us
In reply to: Noah Misch (#1)
Re: rm static libraries before rebuilding

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

#3Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Noah Misch (#1)
Re: rm static libraries before rebuilding

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

--
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers