On 2016-12-10 15:41, Amos Jeffries wrote:
On 9/12/2016 12:18 p.m., Eliezer Croitoru wrote:
What happen with this?


Nothing so far. It is not going to be as simple as adding those lines to
the configure.ac script unfortunately.

There is already a hack in configure.ac to work around some
system-specific issues with the AR tool. We need somebody familiar with
(or able to spend lot of time learning) the build chain tools to
investigate what the original details of that were** and figure out how
to make this addition integrate cleanly.

** sorry I've forgotten specifics.

Amos


-----Original Message-----
From: Alex Rousskov

Hello,

Squid build produces lots of warnings in modern build environments such as Ubuntu 16.04:

make > /dev/null
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
...
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
ar: `u' modifier ignored since `D' is the default (see `U')
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
/usr/bin/ar: `u' modifier ignored since `D' is the default (see `U')
...

These benign warnings is most likely an ancient Automake bug awaken by recent environmental changes. It is becoming a well-known issue among many projects AFAICT. The attached Web Polygraph patch works around this problem. The patch preamble has more technical references.

If you think Squid should do something like this, please consider adopting and adjusting this patch as needed for Squid.


Thank you,

Alex.


I believe, the GNU bug tracker [1] is more complete information source regarding the issue. Libtool already switched to 'cr' flags by default. Patch for automake is awaiting review. Following are technical details from the patches:

---
In some GNU/Linux distributions people started to compile 'ar'
binary with --enable-deterministic-archives (binutils project).
That, however, in combination with previous autotools long time
working default AR{_,}FLAGS=cru causes warnings on such
installations:
ar: `u' modifier ignored since `D' is the default (see `U')

The 'u' option (at least with GNU binutils) did small optimization
during repeated builds because it instructed 'ar' to not
open/close unchanged *.o files and to rather read their contents
from old archive file.  However, its removal should not cause a
big performance hit for usual workflows.

Distributions started using --enable-deterministic-archives
knowing that it will disable the 'u', with the benefit of having
rather a bit more deterministic builds.

Also, to justify this change a bit more, keeping 'u' in ARFLAGS
could only result in many per-project changes to override
Automake's ARFLAGS default, just to silent such warnings.
---

The proposal by Alex to substitute ARFLAGS and AR_FLAGS with 'cr' seems safe enough with some performance degradation in certain cases. The more advanced approach is to add a configure check for default compile options of 'ar' and set 'cr' flags only if 'ar' compiled with --enable-deterministic-archives.

[1] https://debbugs.gnu.org/cgi/bugreport.cgi?bug=20082


Garri
_______________________________________________
squid-dev mailing list
[email protected]
http://lists.squid-cache.org/listinfo/squid-dev

Reply via email to