ecpg hackery to get ecpg to compile from FreeBSD ports...

Started by Sean Chittendenover 23 years ago5 messagesbugs
Jump to latest
#1Sean Chittenden
sean@chittenden.org

Different bogon that I ran across:

2:35pm sean@mat:ecpg/lib > gmake
cc -O -pipe -g -O -I/usr/local/include -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -DPIC -I../../../../src/interfaces/ecpg/include -I../../../../src/interfaces/libpq -I../../../../src/include -I/usr/local/include -I/usr/local/include -c -o connect.o connect.c
connect.c: In function `ECPGnoticeProcessor':
connect.c:148: `ECPG_WARNING_UNRECOGNIZED' undeclared (first use in this function)
connect.c:148: (Each undeclared identifier is reported only once
connect.c:148: for each function it appears in.)
connect.c:166: `ECPG_WARNING_QUERY_IGNORED' undeclared (first use in this function)
connect.c:175: `ECPG_WARNING_UNKNOWN_PORTAL' undeclared (first use in this function)
connect.c:182: `ECPG_WARNING_IN_TRANSACTION' undeclared (first use in this function)
connect.c:193: `ECPG_WARNING_NO_TRANSACTION' undeclared (first use in this function)
connect.c:201: `ECPG_WARNING_PORTAL_EXISTS' undeclared (first use in this function)
gmake: *** [connect.o] Error 1
2:35pm sean@mat:ecpg/lib > pwd
/usr/ports/databases/postgresql7-beta/work/postgresql-7.3b1/src/interfaces/ecpg/lib

This works:
cc -O -pipe -g -O -I../../../../src/interfaces/ecpg/include -I/usr/local/include -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -DPIC -I../../../../src/interfaces/libpq -I../../../../src/include -I/usr/local/include -I/usr/local/include -c -o connect.o connect.c

This doesn't:
cc -O -pipe -g -O -I/usr/local/include -I../../../../src/interfaces/ecpg/include -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -DPIC -I../../../../src/interfaces/libpq -I../../../../src/include -I/usr/local/include -I/usr/local/include -c -o connect.o connect.c

I've got an older ecpgerrno.h in /usr/local/include that doesn't seem
to have these defined. Two quick suggestions:

*) Prepend the CPPFLAGS to the CFLAGS (works, but is hackish)
*) Alter the #ifndef

This strikes me as an upgrade problem for folks that others are going
to run across. -sc

--
Sean Chittenden

#2Peter Eisentraut
peter_e@gmx.net
In reply to: Sean Chittenden (#1)
Re: ecpg hackery to get ecpg to compile from FreeBSD ports...

Sean Chittenden writes:

Different bogon that I ran across:

2:35pm sean@mat:ecpg/lib > gmake
cc -O -pipe -g -O -I/usr/local/include -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -DPIC -I../../../../src/interfaces/ecpg/include -I../../../../src/interfaces/libpq -I../../../../src/include -I/usr/local/include -I/usr/local/include -c -o connect.o connect.c

Apparently you somehow put -I/usr/local/include into CFLAGS. Don't do
that.

--
Peter Eisentraut peter_e@gmx.net

#3Sean Chittenden
sean@chittenden.org
In reply to: Peter Eisentraut (#2)
Re: ecpg hackery to get ecpg to compile from FreeBSD ports...

Different bogon that I ran across:

2:35pm sean@mat:ecpg/lib > gmake
cc -O -pipe -g -O -I/usr/local/include -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -DPIC -I../../../../src/interfaces/ecpg/include -I../../../../src/interfaces/libpq -I../../../../src/include -I/usr/local/include -I/usr/local/include -c -o connect.o connect.c

Apparently you somehow put -I/usr/local/include into CFLAGS. Don't do
that.

Easier said than done... /usr/local/include is propagated throughout
the build to catch local package installations
(getopt/readline)... I'll see if I can't figure out the correct fix
for this though. Thanks for the info though. -sc

--
Sean Chittenden

#4Sean Chittenden
sean@chittenden.org
In reply to: Sean Chittenden (#3)
Re: ecpg hackery to get ecpg to compile from FreeBSD ports...

Different bogon that I ran across:

2:35pm sean@mat:ecpg/lib > gmake
cc -O -pipe -g -O -I/usr/local/include -Wall -Wmissing-prototypes -Wmissing-declarations -fpic -DPIC -I../../../../src/interfaces/ecpg/include -I../../../../src/interfaces/libpq -I../../../../src/include -I/usr/local/include -I/usr/local/include -c -o connect.o connect.c

Apparently you somehow put -I/usr/local/include into CFLAGS. Don't do
that.

Easier said than done... /usr/local/include is propagated
throughout the build to catch local package installations
(getopt/readline)... I'll see if I can't figure out the correct fix
for this though. Thanks for the info though. -sc

This is anecdotal for the archives, but the problem was that when
building with krb5, I had (wrongly?) appended krb5-config's --cflags
output to the CFLAGS for the build... which, nine times out of ten,
was exactly the same as what was used with the --with-includes. If
they're different, the person's horked, but that should be a minority
of the time. Anyway, just an FYI.

-sc

--
Sean Chittenden

#5Peter Eisentraut
peter_e@gmx.net
In reply to: Sean Chittenden (#4)
Re: ecpg hackery to get ecpg to compile from FreeBSD ports...

Sean Chittenden writes:

This is anecdotal for the archives, but the problem was that when
building with krb5, I had (wrongly?) appended krb5-config's --cflags
output to the CFLAGS for the build... which, nine times out of ten,
was exactly the same as what was used with the --with-includes. If
they're different, the person's horked, but that should be a minority
of the time. Anyway, just an FYI.

The foo-config scripts are invariably bogus[*] -- don't use them.
Especially if you're building in a predictable environment such as the
ports tree you don't even need it since the location is known.

[*] at least those that claim to give you the full CFLAGS, unlike
pg_config

--
Peter Eisentraut peter_e@gmx.net