Thread: include compile problems
The attached patch makes the tree build for me again after the recent include changes. This patch still violates the postgres.h before all system headers rule and I'm still not sure what changed that broke everything, but if people need to get work done this may help. Kris Jurka
Attachment
Patch applied. Thanks. --------------------------------------------------------------------------- Kris Jurka wrote: > > The attached patch makes the tree build for me again after the recent > include changes. This patch still violates the postgres.h before all > system headers rule and I'm still not sure what changed that broke > everything, but if people need to get work done this may help. > > Kris Jurka Content-Description: [ Attachment, skipping... ] > > ---------------------------(end of broadcast)--------------------------- > TIP 6: explain analyze is your friend -- Bruce Momjian bruce@momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
Kris Jurka <books@ejurka.com> writes: > The attached patch makes the tree build for me again after the recent > include changes. This patch still violates the postgres.h before all > system headers rule and I'm still not sure what changed that broke > everything, but if people need to get work done this may help. I think that Bruce thought that <math.h> defines INT_MAX and related symbols, whereas the spec is perfectly clear that they're in <limits.h>. However, that's where they are on my machines, and yet CVS tip is not failing for me. I'm not clear why not... What platform are you using? regards, tom lane
Tom Lane wrote: > Kris Jurka <books@ejurka.com> writes: > > The attached patch makes the tree build for me again after the recent > > include changes. This patch still violates the postgres.h before all > > system headers rule and I'm still not sure what changed that broke > > everything, but if people need to get work done this may help. > > I think that Bruce thought that <math.h> defines INT_MAX and related > symbols, whereas the spec is perfectly clear that they're in > <limits.h>. However, that's where they are on my machines, and yet CVS > tip is not failing for me. I'm not clear why not... What platform > are you using? What happened is that an include file had #include <math.h>, but didn't need it, so when it was removed, it had to be added to a few C files. Not sure why limit.h is involved though, but the include trimming does sometimes have that affect because limit was used somewhere else. This is why the cleaning isn't done for every release. -- Bruce Momjian bruce@momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
On Fri, 14 Jul 2006, Tom Lane wrote: > I think that Bruce thought that <math.h> defines INT_MAX and related > symbols, whereas the spec is perfectly clear that they're in > <limits.h>. However, that's where they are on my machines, and yet CVS > tip is not failing for me. I'm not clear why not... What platform > are you using? > I tested on Solaris 9 with Sun compiler and Debian unstable with gcc-4.1.1. Debian only failed on contrib while Solaris failed on both core and contrib. Kris Jurka
Bruce Momjian <bruce@momjian.us> writes: > Patch applied. Thanks. I suspect the point was that limits.h is needed *instead of* math.h, not *in addition to*. How many of those headers had math.h before? regards, tom lane
Tom Lane wrote: > Bruce Momjian <bruce@momjian.us> writes: > > Patch applied. Thanks. > > I suspect the point was that limits.h is needed *instead of* math.h, > not *in addition to*. How many of those headers had math.h before? The issue was that an include file included another include file that had math.h, but that include wasn't needed, so when it was removed, a C file including the first file didn't have math.h anymore. (I didn't actually check system include file usage because that is platform-specific). Anyway, thanks for the patch you made, and glad you looked at the system includes, which I did not. -- Bruce Momjian bruce@momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +