Thread: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
emre@hasegeli.com
Date:
The following bug has been logged on the website: Bug reference: 8271 Logged by: Emre Hasegeli Email address: emre@hasegeli.com PostgreSQL version: 9.1.9 Operating system: OpenBSD 5.3 amd64 Description: Configure warning on OpenBSD 5.3: checking sys/ucred.h usability... no checking sys/ucred.h presence... yes configure: WARNING: sys/ucred.h: present but cannot be compiled configure: WARNING: sys/ucred.h: check for missing prerequisite headers? configure: WARNING: sys/ucred.h: see the Autoconf documentation configure: WARNING: sys/ucred.h: section "Present But Cannot Be Compiled" configure: WARNING: sys/ucred.h: proceeding with the preprocessor's result configure: WARNING: sys/ucred.h: in the future, the compiler will take precedence configure: WARNING: ## ---------------------------------------- ## configure: WARNING: ## Report this to pgsql-bugs@postgresql.org ## configure: WARNING: ## ---------------------------------------- ## checking for sys/ucred.h... yes It appears on 9.1.9, 9.2.4, 9.3beta2; does not appear on 9.0.13.
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andres Freund
Date:
On 2013-06-30 10:43:49 +0000, emre@hasegeli.com wrote: > checking sys/ucred.h usability... no > checking sys/ucred.h presence... yes > configure: WARNING: sys/ucred.h: present but cannot be compiled > configure: WARNING: sys/ucred.h: check for missing prerequisite > headers? > configure: WARNING: sys/ucred.h: see the Autoconf documentation > configure: WARNING: sys/ucred.h: section "Present But Cannot Be > Compiled" > configure: WARNING: sys/ucred.h: proceeding with the preprocessor's result > configure: WARNING: sys/ucred.h: in the future, the compiler will take > precedence > configure: WARNING: ## ---------------------------------------- ## > configure: WARNING: ## Report this to pgsql-bugs@postgresql.org ## > configure: WARNING: ## ---------------------------------------- ## > checking for sys/ucred.h... yes Could you attach config.log? Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andres Freund
Date:
On 2013-06-30 15:11:24 +0300, Emre Hasegeli wrote: > 2013/6/30 Andres Freund <andres@2ndquadrant.com>: > > On 2013-06-30 10:43:49 +0000, emre@hasegeli.com wrote: > > Could you attach config.log? > > Attached. This seems to be caused by be4585b1c27ac5dbdd0d61740d18f7ad9a00e268. The fault imo lies with openbsd which doesn't include the prerequisite sys/param.h header which defines NGROUPS: http://fxr.watson.org/fxr/source/sys/ucred.h?v=OPENBSD The other BSD flavors seems to get that right. Before that commit the checks for cmsgcred which includes sys/ucred.h happened to include params.h... Patch attached, missing the configure update since I don't have a compatible autoconf on my laptop, to produce a minimal diff. It's a bit sad that we didn't notice this despite having spoonbill reporting it, presumably for a good while: http://pgbuildfarm.org/cgi-bin/show_stage_log.pl?nm=spoonbill&dt=2013-06-29%2011%3A00%3A04&stg=configure The reason we presumably missed it is that getpeereid is properly present. Andrew: Could we perhaps check for the "Report this to" bit in the buildfarm? Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Attachment
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andres Freund
Date:
On 2013-06-30 15:17:20 +0200, Andres Freund wrote: > Andrew: Could we perhaps check for the "Report this to" bit in the > buildfarm? FWIW: I checked that there are no other reports on HEAD atm. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andrew Dunstan
Date:
On 06/30/2013 09:20 AM, Andres Freund wrote: > On 2013-06-30 15:17:20 +0200, Andres Freund wrote: >> Andrew: Could we perhaps check for the "Report this to" bit in the >> buildfarm? > FWIW: I checked that there are no other reports on HEAD atm. > I'm not sure what you're asking here. Where exactly do you thing buildfarm failures should be reported? There are four mailing lists that get buildfarm status reports: * <http://lists.pgfoundry.org/mailman/listinfo/pgbuildfarm-status-all> gets a summary of every single reported build * <http://lists.pgfoundry.org/mailman/listinfo/pgbuildfarm-status-fail> gets a summary of every build that fails * <http://lists.pgfoundry.org/mailman/listinfo/pgbuildfarm-status-chngs> gets a summary of every build that results in a status change * <http://lists.pgfoundry.org/mailman/listinfo/pgbuildfarm-status-green> gets a summary of every build that results in a status change to or from green (a.k.a. OK) These are available in digest form. What we could possibly add is a feature to email a committer about a commit included in the changeset of a failing build. The main trick would be to avoid flooding the committers, so that a commit would only be notified once. Magnus has suggested something like this previously, but I haven't looked at it much - I can again. It might not be too hard. cheers andrew
Andrew Dunstan <andrew@dunslane.net> writes: >> On 2013-06-30 15:17:20 +0200, Andres Freund wrote: >>> Andrew: Could we perhaps check for the "Report this to" bit in the >>> buildfarm? > I'm not sure what you're asking here. I think he's wishing that if configure prints something like configure: WARNING: sys/ucred.h: present but cannot be compiled configure: WARNING: sys/ucred.h: check for missing prerequisite headers? configure: WARNING: sys/ucred.h: see the Autoconf documentation configure: WARNING: sys/ucred.h: section "Present But Cannot Be Compiled" configure: WARNING: sys/ucred.h: proceeding with the preprocessor's result configure: WARNING: sys/ucred.h: in the future, the compiler will take precedence configure: WARNING: ## ---------------------------------------- ## configure: WARNING: ## Report this to pgsql-bugs@postgresql.org ## configure: WARNING: ## ---------------------------------------- ## that that ought to be treated as a failure not a success. I'm not entirely sure that I agree, but it's an arguable position. regards, tom lane
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andrew Dunstan
Date:
On 06/30/2013 09:49 AM, Tom Lane wrote: > Andrew Dunstan <andrew@dunslane.net> writes: >>> On 2013-06-30 15:17:20 +0200, Andres Freund wrote: >>>> Andrew: Could we perhaps check for the "Report this to" bit in the >>>> buildfarm? >> I'm not sure what you're asking here. > I think he's wishing that if configure prints something like > > configure: WARNING: sys/ucred.h: present but cannot be compiled > configure: WARNING: sys/ucred.h: check for missing prerequisite headers? > configure: WARNING: sys/ucred.h: see the Autoconf documentation > configure: WARNING: sys/ucred.h: section "Present But Cannot Be Compiled" > configure: WARNING: sys/ucred.h: proceeding with the preprocessor's result > configure: WARNING: sys/ucred.h: in the future, the compiler will take precedence > configure: WARNING: ## ---------------------------------------- ## > configure: WARNING: ## Report this to pgsql-bugs@postgresql.org ## > configure: WARNING: ## ---------------------------------------- ## > > that that ought to be treated as a failure not a success. I'm not > entirely sure that I agree, but it's an arguable position. Oh. Well, if that's a failure then it's up to configure to treat it as one. The buildfarm doesn't second-guess the exit status of the various steps, and it doesn't report warnings - if it did we'd be flooded. cheers andrew
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andres Freund
Date:
On 2013-06-30 10:17:50 -0400, Andrew Dunstan wrote: > > On 06/30/2013 09:49 AM, Tom Lane wrote: > >Andrew Dunstan <andrew@dunslane.net> writes: > >>>On 2013-06-30 15:17:20 +0200, Andres Freund wrote: > >>>>Andrew: Could we perhaps check for the "Report this to" bit in the > >>>>buildfarm? > >>I'm not sure what you're asking here. > >I think he's wishing that if configure prints something like > > > >configure: WARNING: sys/ucred.h: present but cannot be compiled > >configure: WARNING: sys/ucred.h: check for missing prerequisite headers? > >configure: WARNING: sys/ucred.h: see the Autoconf documentation > >configure: WARNING: sys/ucred.h: section "Present But Cannot Be Compiled" > >configure: WARNING: sys/ucred.h: proceeding with the preprocessor's result > >configure: WARNING: sys/ucred.h: in the future, the compiler will take precedence > >configure: WARNING: ## ---------------------------------------- ## > >configure: WARNING: ## Report this to pgsql-bugs@postgresql.org ## > >configure: WARNING: ## ---------------------------------------- ## > > > >that that ought to be treated as a failure not a success. I'm not > >entirely sure that I agree, but it's an arguable position. Exactly. That we presumably had this warning showing up for more than 2 years seems to indicate we should think about doing something different. > Oh. Well, if that's a failure then it's up to configure to treat it as one. > The buildfarm doesn't second-guess the exit status of the various steps, and > it doesn't report warnings - if it did we'd be flooded. I guess we don't want to do that because it would probably hurt people building in unusual environments where some variants of this very well can show up without stopping pg from being built. Many people on such problems will have no difficulties fixing a minor compilation error, but fixing configure.in + installing the correct autoconf version is a higher barrier. We could add a --strict-mode or so to configure, but afair the handling of that warning is burried in autoconf itself making this harder. So I thought adding some grep like thing to the buildfarm might be the easiest solution. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andrew Dunstan
Date:
On 06/30/2013 11:07 AM, Andres Freund wrote: > On 2013-06-30 10:17:50 -0400, Andrew Dunstan wrote: >> On 06/30/2013 09:49 AM, Tom Lane wrote: >>> Andrew Dunstan <andrew@dunslane.net> writes: >>>>> On 2013-06-30 15:17:20 +0200, Andres Freund wrote: >>>>>> Andrew: Could we perhaps check for the "Report this to" bit in the >>>>>> buildfarm? >>>> I'm not sure what you're asking here. >>> I think he's wishing that if configure prints something like >>> >>> configure: WARNING: sys/ucred.h: present but cannot be compiled >>> configure: WARNING: sys/ucred.h: check for missing prerequisite headers? >>> configure: WARNING: sys/ucred.h: see the Autoconf documentation >>> configure: WARNING: sys/ucred.h: section "Present But Cannot Be Compiled" >>> configure: WARNING: sys/ucred.h: proceeding with the preprocessor's result >>> configure: WARNING: sys/ucred.h: in the future, the compiler will take precedence >>> configure: WARNING: ## ---------------------------------------- ## >>> configure: WARNING: ## Report this to pgsql-bugs@postgresql.org ## >>> configure: WARNING: ## ---------------------------------------- ## >>> >>> that that ought to be treated as a failure not a success. I'm not >>> entirely sure that I agree, but it's an arguable position. > Exactly. That we presumably had this warning showing up for more than 2 > years seems to indicate we should think about doing something different. > >> Oh. Well, if that's a failure then it's up to configure to treat it as one. >> The buildfarm doesn't second-guess the exit status of the various steps, and >> it doesn't report warnings - if it did we'd be flooded. > I guess we don't want to do that because it would probably hurt people > building in unusual environments where some variants of this very well > can show up without stopping pg from being built. Many people on such > problems will have no difficulties fixing a minor compilation error, but > fixing configure.in + installing the correct autoconf version is a > higher barrier. > We could add a --strict-mode or so to configure, but afair the handling > of that warning is burried in autoconf itself making this harder. So > I thought adding some grep like thing to the buildfarm might be the > easiest solution. > But that *would* be second-guessing configure's exit status. I don't understand the reference to autoconf - nobody building Postgres, including buildfarm members, needs autoconf installed at all. Only developers and committers need to, and then only when configure.in is changed. cheers andrew
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andres Freund
Date:
On 2013-06-30 11:19:50 -0400, Andrew Dunstan wrote: > >>Oh. Well, if that's a failure then it's up to configure to treat it as one. > >>The buildfarm doesn't second-guess the exit status of the various steps, and > >>it doesn't report warnings - if it did we'd be flooded. > >I guess we don't want to do that because it would probably hurt people > >building in unusual environments where some variants of this very well > >can show up without stopping pg from being built. Many people on such > >problems will have no difficulties fixing a minor compilation error, but > >fixing configure.in + installing the correct autoconf version is a > >higher barrier. > >We could add a --strict-mode or so to configure, but afair the handling > >of that warning is burried in autoconf itself making this harder. So > >I thought adding some grep like thing to the buildfarm might be the > >easiest solution. > But that *would* be second-guessing configure's exit status. Yes. I think that's the easiest thing in this case. > I don't understand the reference to autoconf - nobody building Postgres, > including buildfarm members, needs autoconf installed at all. Only > developers and committers need to, and then only when configure.in is > changed. If we would treat that warning as an error unconditionally - and I am not sure how easy that is given the way it's emitted - users encountering them, which usually will be on less common platforms, will have to patch configure.in to make things work for them. Which is a high bar. Given that many of those warnings will *NOT* completely prohibit them from building postgres that might be overreaching. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Emre Hasegeli
Date:
2013/6/30 Andres Freund <andres@2ndquadrant.com>: > On 2013-06-30 10:43:49 +0000, emre@hasegeli.com wrote: > Could you attach config.log? Attached.
Attachment
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Peter Eisentraut
Date:
On 6/30/13 11:26 AM, Andres Freund wrote: > If we would treat that warning as an error unconditionally - and I am > not sure how easy that is given the way it's emitted - users > encountering them, which usually will be on less common platforms, will > have to patch configure.in to make things work for them. Which is a high > bar. > Given that many of those warnings will *NOT* completely prohibit them > from building postgres that might be overreaching. We could also look into updating Autoconf. Newer versions proceed with the compiler's result. At that point, you can essentially ignore the warning.
Peter Eisentraut <peter_e@gmx.net> writes: > On 6/30/13 11:26 AM, Andres Freund wrote: >> If we would treat that warning as an error unconditionally - and I am >> not sure how easy that is given the way it's emitted - users >> encountering them, which usually will be on less common platforms, will >> have to patch configure.in to make things work for them. Which is a high >> bar. > We could also look into updating Autoconf. Newer versions proceed with > the compiler's result. At that point, you can essentially ignore the > warning. AFAICT, the result in this case would be that the script comes to the wrong conclusion about whether ucred.h is available. Wouldn't that result in a build failure, or at least missing features? IOW, don't we need to fix this test anyway? However, if newer autoconf versions make only one test per header file and not two, then +1 for updating. Should help a bit with configure's speed problem. regards, tom lane
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andres Freund
Date:
On 2013-07-01 09:19:23 -0400, Tom Lane wrote: > Peter Eisentraut <peter_e@gmx.net> writes: > > On 6/30/13 11:26 AM, Andres Freund wrote: > >> If we would treat that warning as an error unconditionally - and I am > >> not sure how easy that is given the way it's emitted - users > >> encountering them, which usually will be on less common platforms, will > >> have to patch configure.in to make things work for them. Which is a high > >> bar. > > > We could also look into updating Autoconf. Newer versions proceed with > > the compiler's result. At that point, you can essentially ignore the > > warning. While it has other benefits, changing whether autoconf believes the precompiler or the compiler doesn't seem to fix the issue of tests that fail silently (as in, don't abort autoconf) because we missed to include prerequisite headers. And it doesn't seem to make it neither easier, nor harder for users to fix configure.in, so unconditionally throwing an hard error even if we could manage it would still not a good solution. > AFAICT, the result in this case would be that the script comes to the > wrong conclusion about whether ucred.h is available. Wouldn't that > result in a build failure, or at least missing features? IOW, don't > we need to fix this test anyway? Yes, we need to. I vote for applying something similar to what I proposed upthread. If we can get rid of some redundancy by using a newer autoconf we need to touch far more than this tiny bit... Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Peter Eisentraut
Date:
On 7/1/13 9:19 AM, Tom Lane wrote: > AFAICT, the result in this case would be that the script comes to the > wrong conclusion about whether ucred.h is available. Wouldn't that > result in a build failure, or at least missing features? IOW, don't > we need to fix this test anyway? The test needs to be fixed, but with a newer Autoconf version we would (probably) have been alerted about that by a build failure rather than someone scanning build logs.
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andrew Dunstan
Date:
On 07/01/2013 05:35 PM, Peter Eisentraut wrote: > On 7/1/13 9:19 AM, Tom Lane wrote: >> AFAICT, the result in this case would be that the script comes to the >> wrong conclusion about whether ucred.h is available. Wouldn't that >> result in a build failure, or at least missing features? IOW, don't >> we need to fix this test anyway? > The test needs to be fixed, but with a newer Autoconf version we would > (probably) have been alerted about that by a build failure rather than > someone scanning build logs. I take it you mean a configure failure would occur with a later Autoconf. cheers andrew
Peter Eisentraut <peter_e@gmx.net> writes: > On 7/1/13 9:19 AM, Tom Lane wrote: >> AFAICT, the result in this case would be that the script comes to the >> wrong conclusion about whether ucred.h is available. Wouldn't that >> result in a build failure, or at least missing features? IOW, don't >> we need to fix this test anyway? > The test needs to be fixed, but with a newer Autoconf version we would > (probably) have been alerted about that by a build failure rather than > someone scanning build logs. I think probably we'd have just not compiled the dependent code, and would have found out about it only when somebody complained that peer auth didn't work on OpenBSD. Not sure that's really a more attractive behavior :-( regards, tom lane
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Peter Eisentraut
Date:
On Mon, 2013-07-01 at 19:27 -0400, Tom Lane wrote: > I think probably we'd have just not compiled the dependent code, and > would have found out about it only when somebody complained that peer > auth didn't work on OpenBSD. Not sure that's really a more attractive > behavior :-( That might be the case, but that's more a problem of how this particular feature is implemented, not how the configure test works.
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andres Freund
Date:
Hi, On 2013-06-30 15:17:20 +0200, Andres Freund wrote: > On 2013-06-30 15:11:24 +0300, Emre Hasegeli wrote: > > 2013/6/30 Andres Freund <andres@2ndquadrant.com>: > > > On 2013-06-30 10:43:49 +0000, emre@hasegeli.com wrote: > > > Could you attach config.log? > > > > Attached. > > This seems to be caused by be4585b1c27ac5dbdd0d61740d18f7ad9a00e268. The > fault imo lies with openbsd which doesn't include the prerequisite > sys/param.h header which defines NGROUPS: > http://fxr.watson.org/fxr/source/sys/ucred.h?v=OPENBSD > The other BSD flavors seems to get that right. > > Before that commit the checks for cmsgcred which includes sys/ucred.h > happened to include params.h... Patch attached, missing the configure > update since I don't have a compatible autoconf on my laptop, to produce > a minimal diff. Could somebody apply the fix (including regenerating /configure)? Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Andres Freund <andres@2ndquadrant.com> writes: >> Before that commit the checks for cmsgcred which includes sys/ucred.h >> happened to include params.h... Patch attached, missing the configure >> update since I don't have a compatible autoconf on my laptop, to produce >> a minimal diff. > Could somebody apply the fix (including regenerating /configure)? The proposed patch seems a bit overcomplicated --- isn't the real problem that I changed the ordering of the header probes in be4585b1c27ac5dbdd0d61740d18f7ad9a00e268? I think I just alphabetized them in a fit of neatnik-ism, not realizing that there were order dependencies on some platforms. regards, tom lane
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andres Freund
Date:
On 2013-07-25 09:48:31 -0400, Tom Lane wrote: > Andres Freund <andres@2ndquadrant.com> writes: > >> Before that commit the checks for cmsgcred which includes sys/ucred.h > >> happened to include params.h... Patch attached, missing the configure > >> update since I don't have a compatible autoconf on my laptop, to produce > >> a minimal diff. > > > Could somebody apply the fix (including regenerating /configure)? > > The proposed patch seems a bit overcomplicated --- isn't the real > problem that I changed the ordering of the header probes in > be4585b1c27ac5dbdd0d61740d18f7ad9a00e268? I think I just alphabetized > them in a fit of neatnik-ism, not realizing that there were order > dependencies on some platforms. Hm. It very well might be too complicated. I am not exactly a autoconf expert... The problem is that you can't include sys/ucred.h on some platforms (e.g. openbsd) without first including sys/params.h because the resulting file won't compile. Unless I misunderstood what you propose a different order in that AC_CHECK_HEADERS() shouldn't help getting it there? Maybe we could get rid of the two separate tests that now use HAVE_SYS_PARAM_H - I just tried to followed the surrounding patterns. FWIW I have confirmation via private emails that the patch works at least on openbsd... Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Andres Freund <andres@2ndquadrant.com> writes: > On 2013-07-25 09:48:31 -0400, Tom Lane wrote: >> The proposed patch seems a bit overcomplicated --- isn't the real >> problem that I changed the ordering of the header probes in >> be4585b1c27ac5dbdd0d61740d18f7ad9a00e268? I think I just alphabetized >> them in a fit of neatnik-ism, not realizing that there were order >> dependencies on some platforms. > Hm. It very well might be too complicated. I am not exactly a autoconf > expert... Ah, I was thinking that AC_CHECK_HEADERS would include the previously-found headers when checking a particular item, but a bit of research says that's not so. So we do indeed need something like this. Will take care of it. regards, tom lane
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andrew Dunstan
Date:
On 07/25/2013 09:48 AM, Tom Lane wrote: > Andres Freund <andres@2ndquadrant.com> writes: >>> Before that commit the checks for cmsgcred which includes sys/ucred.h >>> happened to include params.h... Patch attached, missing the configure >>> update since I don't have a compatible autoconf on my laptop, to produce >>> a minimal diff. >> Could somebody apply the fix (including regenerating /configure)? > The proposed patch seems a bit overcomplicated --- isn't the real > problem that I changed the ordering of the header probes in > be4585b1c27ac5dbdd0d61740d18f7ad9a00e268? I think I just alphabetized > them in a fit of neatnik-ism, not realizing that there were order > dependencies on some platforms. > > It looks to me like you didn't reorder anything, you added a test for sys/ucred.h. I haven't seen the proposed patch, though. cheers andrew
Andres Freund <andres@2ndquadrant.com> writes: > The problem is that you can't include sys/ucred.h on some platforms > (e.g. openbsd) without first including sys/params.h because the > resulting file won't compile. BTW, after committing this I re-reviewed the thread and realized that actually this problem is strictly cosmetic. The net effect of the configure bug is is that it (1) doesn't set HAVE_SYS_UCRED_H and as a consequence (2) doesn't set HAVE_STRUCT_CMSGCRED. However, that's only examined in one place in libpq, which says: * Note: this is dead code as of Postgres 9.1, because current backends will * never send this challenge. But we must keep it as long as libpq needs to * interoperate with pre-9.1 servers. It is believed to be needed only on * Debian/kFreeBSD (ie, FreeBSD kernel with Linux userland, so that the * getpeereid() function isn't provided by libc). So on an OpenBSD build that code wouldn't be used anyway (not even when talking to a pre-9.1 server, if I'm interpreting the comment correctly). regards, tom lane
Re: BUG #8271: Configure warning: sys/ucred.h: present but cannot be compiled
From
Andres Freund
Date:
On 2013-07-25 11:50:47 -0400, Tom Lane wrote: > Andres Freund <andres@2ndquadrant.com> writes: > > The problem is that you can't include sys/ucred.h on some platforms > > (e.g. openbsd) without first including sys/params.h because the > > resulting file won't compile. > > BTW, after committing this I re-reviewed the thread and realized that > actually this problem is strictly cosmetic. The net effect of the > configure bug is is that it (1) doesn't set HAVE_SYS_UCRED_H and > as a consequence (2) doesn't set HAVE_STRUCT_CMSGCRED. Yes, I've commented on that upthread. The cosmetics are worth fixing though, since I've posted in this thread several people mailed me because they thought this was the cause of actually unrelated problems... The last mail was what reminded me of the patch today ;) > So on an OpenBSD build that code wouldn't be used anyway (not even > when talking to a pre-9.1 server, if I'm interpreting the comment > correctly). As far as I understood it, it wouldn't be used as long as you're not talking to a server on another platform that supports AUTH_REQ_SCM_CREDS serverside. Which is pretty unlikely, I grant you that ;) Not that it really matters, but I am slightly doubtful about the "kfreebsd only" claim. Given the age of that code relative do kfreebsd there at least had to be some more platforms needing that codepath at some point. Greetings, Andres Freund -- Andres Freund http://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Training & Services
Andres Freund <andres@2ndquadrant.com> writes: > On 2013-07-25 11:50:47 -0400, Tom Lane wrote: >> So on an OpenBSD build that code wouldn't be used anyway (not even >> when talking to a pre-9.1 server, if I'm interpreting the comment >> correctly). > As far as I understood it, it wouldn't be used as long as you're not > talking to a server on another platform that supports AUTH_REQ_SCM_CREDS > serverside. Which is pretty unlikely, I grant you that ;) But SCM_CREDS is only relevant to Unix-socket connections, so the server has to be under the same kernel as the client. > Not that it really matters, but I am slightly doubtful about the > "kfreebsd only" claim. Given the age of that code relative do kfreebsd > there at least had to be some more platforms needing that codepath at > some point. Of course. There's some historical context in the commit message for be4585b1c27ac5dbdd0d61740d18f7ad9a00e268 --- basically the point is that kfreebsd was the last live platform on which we'd use credentials messages. regards, tom lane