Heimdal prototype problem on OpenVMS
John E. Malmberg
wb8tyw at qsl.net
Sat Oct 22 19:01:52 GMT 2005
Love wrote:
> "John E. Malmberg" <wb8tyw at qsl.net> writes:
>
>>>Add the missing autoconf tests ? The all compat functions are wrapped in
>>>#ifndef statements, and they need autoconftest to not be defined.
>>
>>Configure is currently barely on speaking terms with me. I have
>>already notice that it's standard method of testing is with out the
>>standard header modules present.
>
> For wierd platforms, ie non unix :), like probably easier to have a static
> config.h that gets copied to the right place when building.
It was up until the build procedures to create the config.h and makefile
got complicated enough that I needed to actually run the configure
script. Before then it was much easier to run a native script on
config.h.in and generate the correct results.
But in the past, I have noticed that the issues like I am seeing
configure get wrong have also shown up in UNIX and other systems that
are trying to maintain SAMBA ports.
>>Is there an interest in fixing Configure so that it actually is doing
>>the tests in a way that are more likely to not have false failures?
>
> So the problem with configure is no longer that its entenched with sh but
> rather something else ?
The problem is that configure is testing the fallback behavior of the C
library, not the behavior of the C library in a standard compliant C
program.
As such, for any platform that by default maintains backwards
compatibility with older version of source code or binary code, or
behaviors that existed before ANSI and X/Open published standards,
configure is highly likely to produce wrong answers.
On OpenVMS, if the standard header files are not present in a C module,
the compiler directs the linker to bring in routines that are compatible
with the oldest implementation of the function.
I would not be surprised if this is not an issue on many UNIX systems,
especially the commercial ones. But because the output of configure is
trusted, it has not been noticed.
But because I can not trust the output of configure, and I have to pay
attention to what it is testing, I will be noticing many of these cases.
To make sure that Configure produces the correct answers, it should be
testing in a mode with ANSI/X-Open compliant headers first and only go
looking for the alternate possibilities if the standard header compliant
tests fail.
As it is, it appears that Configure almost never checks to see if an
ANSI/X-Open compliant test works unless the test that is not guaranteed
to produce useful results on all platforms succeeds.
While watching Configure run on SAMBA and several other GNU projects, I
notice that it is first verifying that a header file works, and then
checking for it's existence. If it works, it must exist, so why is this
additional test even being run? All that is doing is increasing the
time to run the Configure script by up to 30%.
If Configure were to do the ANSI/X-Open test first, not only would it
produce more accurate answers, it would probably run faster. It may be
possible to skip up to 50% of the tests it is doing.
In my case, I can either try to fix the Configure scripts to do what
they should be doing, or use back doors in the UNIX/POSIX emulation to
game the environment.
The first option probably requires some help from someone that knows
shell programming better than I do. (easy to find :-).
The second only helps me, but I must constantly adjust my tweaks as new
Configure tests are added that follow the existing model.
>>>Or simply remove them from roken.h if they are not used by the
>>>kerberos/gssapi library.
>>
>>Because the current build seems to create some source code on the fly,
>>and I have yet to get a build done, I do not know if they are needed.
>>A simple search of the source code seems to indicate that they are not used.
>
> Check config.h.in, it should contain enough clue if the define is needed or
> not.
I will look for it on Monday when I get to where I have my build
environment.
In addition to working on porting SAMBA, in many cases I also have to
fix the UNIX/POSIX emulation environment and tools.
-John
wb8tyw at qsl.net
Personal Opinion Only
More information about the samba-technical
mailing list