Thread: configure autodetection problem

configure autodetection problem

From
Daniel Kalchev
Date:
I am experimenting to compile postgresql-snapshot [Sep 15 07:01] on BSD/OS 3.1

configure however chooses the bsdi_4.0 template. (which uses different kind of
shared libraries)

Upon investigation, it turns out that there is template/.similar file that
'helps' configure choose the proper template with fewer hard-coded
instructions.
For BSD/OS it lists:

i386-pc-bsdi2.0=bsdi_2.0
i386-pc-bsdi2.1=bsdi_2.1
i386-pc-bsdi3.0=bsdi_2.1
i386-pc-bsdi4.0=bsdi_4.0

I tried adding

i386-pc-bsdi3.1=bsdi_2.1

there but the result was the same.

It turns out, that configure executes

GUESS=`grep "$host_no_ver" template/.similar | sed 's/.*=//' | tail -1`

to guess the template... but earlier host_no_ver is set using

host_no_ver=`echo "$host" | sed 's/[0-9.]*$//'`

which in my cases results in

i386-pc-bsdi

which apparently matches all rows in the .similar file and returns the last
one...

I understand the reasons to have such 'automatism', to pick the latest version
if other is not defined in the .similar file, but apparently this should pick
the longest match first.

Which can be done using two-pass selection, first with using '$host', then
with using '$host_no_ver' in configure.

The enclosed patch does that.

Daniel

Attachment