There are both preconfigure(.in) and configure(.in) scripts under the corresponding sysdeps/"architecture" directories within glibc source files. So anyone who know about their difference!?
preconfigure
files were used by the add-on mechanism to override information used by the configure
script:
The real source code for any ports is found in the sysdeps/ subdirectories. These should be exactly what would go into the main libc source tree if you were to incorporate it directly. The only exceptions are the files sysdeps/*/preconfigure and sysdeps/*/preconfigure.in; these are fragments used by this add-on's configure fragment. The purpose of these is to set $base_machine et al when the main libc configure's defaults are not right for some machine. Everything else can and should be done from a normal sysdeps/.../configure fragment that is used only when the configuration selects that sysdeps subdirectory. Each port that requires some special treatment before the sysdeps directory list is calculated, should add a sysdeps/CPU/preconfigure file; this can either be written by hand or generated by Autoconf from sysdeps/CPU/preconfigure.in, and follow the rules for glibc add-on configure fragments. No preconfigure file should do anything on an unrelated configuration, so that disparate ports can be put into a single add-on without interfering with each other.
(From an old version of the README
file.)
The need for this went away when the ports
subdirectory was removed, and the add-on mechanism is almost completely unused today.