Re: Compile error with MSVC

Lists: pgsql-patches
From: Yoshiyuki Asaba <y-asaba(at)sraoss(dot)co(dot)jp>
To: pgsql-patches(at)postgresql(dot)org
Subject: Compile error with MSVC
Date: 2007-07-04 05:12:28
Message-ID: 20070704.141228.57446947.y-asaba@sraoss.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-patches

Hi,

I tried to compile using Visual C++ 2005. But I got the following
errors.

.\src\backend\parser\keywords.c(22) : fatal error C1083: 'parser/parse.h': No such file or directory

I saw src/tools/msvc/pgbison.bat. Why does it copy
src/backend/parser/parser.h to src/include/parser directory?

src/tools/msvc/pgbison.bat:14

if "%1" == "src\backend\parser\gram.y" call :generate %1 src\backend\parser\gram.c src\include\parser\parse.h

I think we should add "src/backend" directory to include path. Because
if gram.c is newer than gram.y, include/parser/parse.h does not
copied.

Then, I saw clean.bat. It deletes the files generated by Bison. I
think we don't have to delete these files.

The attached patch for HEAD is fixed them.
Regards,
--
Yoshiyuki Asaba
y-asaba(at)sraoss(dot)co(dot)jp

Attachment Content-Type Size
unknown_filename text/plain 4.5 KB

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Yoshiyuki Asaba <y-asaba(at)sraoss(dot)co(dot)jp>
Cc: pgsql-patches(at)postgresql(dot)org
Subject: Re: Compile error with MSVC
Date: 2007-07-05 05:03:11
Message-ID: 468C7B8F.9080102@hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-patches

Yoshiyuki Asaba wrote:
> Hi,
>
> I tried to compile using Visual C++ 2005. But I got the following
> errors.
>
> .\src\backend\parser\keywords.c(22) : fatal error C1083: 'parser/parse.h': No such file or directory
>
> I saw src/tools/msvc/pgbison.bat. Why does it copy
> src/backend/parser/parser.h to src/include/parser directory?

<snip>
While your solution may be correct (I don't recall offhand how, but it
doesn't seem off the chart), I don't see how it can help you in this
case. Since pgbison would copy the file there, ISTM that pgbison must
have filed. Did you not get a warning output from that one earlier in
your build?

//Magnus


From: Yoshiyuki Asaba <y-asaba(at)sraoss(dot)co(dot)jp>
To: magnus(at)hagander(dot)net
Cc: pgsql-patches(at)postgresql(dot)org
Subject: Re: Compile error with MSVC
Date: 2007-07-06 01:33:09
Message-ID: 20070706.103309.13767589.y-asaba@sraoss.co.jp
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-patches

Hi,

From: Magnus Hagander <magnus(at)hagander(dot)net>
Subject: Re: [PATCHES] Compile error with MSVC
Date: Thu, 05 Jul 2007 07:03:11 +0200

> > I tried to compile using Visual C++ 2005. But I got the following
> > errors.
> >
> > .\src\backend\parser\keywords.c(22) : fatal error C1083: 'parser/parse.h': No such file or directory
> >
> > I saw src/tools/msvc/pgbison.bat. Why does it copy
> > src/backend/parser/parser.h to src/include/parser directory?
>
> <snip>
> While your solution may be correct (I don't recall offhand how, but it
> doesn't seem off the chart), I don't see how it can help you in this
> case. Since pgbison would copy the file there, ISTM that pgbison must
> have filed. Did you not get a warning output from that one earlier in
> your build?

If gram.c is older than gram.y, pgbison copy parse.h by custom build
step. But it is newer, pgbison is skipped.

I see the same problem in PostgreSQL 8.2.4. parse.h does not exist in
"src/include/parser" directory.

% tar ztvf postgresql-8.2.4.tar.gz | grep -w parse.h
-rw-r--r-- pgsql/pgsql 16540 2007-04-20 14:13 postgresql-8.2.4/src/backend/parser/parse.h

gram.c is newer than gram.y in PostgreSQL 8.2.4.

% tar ztvf postgresql-8.2.4.tar.gz | grep -w gram.\[cy\] | grep -v plpgsql
-rw-r--r-- pgsql/pgsql 237506 2006-11-06 07:42 postgresql-8.2.4/src/backend/parser/gram.y
-rw-r--r-- pgsql/pgsql 1040559 2007-04-20 14:13 postgresql-8.2.4/src/backend/parser/gram.c

--
Yoshiyuki Asaba
y-asaba(at)sraoss(dot)co(dot)jp


From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Yoshiyuki Asaba <y-asaba(at)sraoss(dot)co(dot)jp>
Cc: pgsql-patches(at)postgresql(dot)org
Subject: Re: Compile error with MSVC
Date: 2007-07-06 10:24:52
Message-ID: 468E1874.2040104@hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-patches

Yoshiyuki Asaba wrote:
> Hi,
>
> From: Magnus Hagander <magnus(at)hagander(dot)net>
> Subject: Re: [PATCHES] Compile error with MSVC
> Date: Thu, 05 Jul 2007 07:03:11 +0200
>
>>> I tried to compile using Visual C++ 2005. But I got the following
>>> errors.
>>>
>>> .\src\backend\parser\keywords.c(22) : fatal error C1083: 'parser/parse.h': No such file or directory
>>>
>>> I saw src/tools/msvc/pgbison.bat. Why does it copy
>>> src/backend/parser/parser.h to src/include/parser directory?
>> <snip>
>> While your solution may be correct (I don't recall offhand how, but it
>> doesn't seem off the chart), I don't see how it can help you in this
>> case. Since pgbison would copy the file there, ISTM that pgbison must
>> have filed. Did you not get a warning output from that one earlier in
>> your build?
>
> If gram.c is older than gram.y, pgbison copy parse.h by custom build
> step. But it is newer, pgbison is skipped.
>
> I see the same problem in PostgreSQL 8.2.4. parse.h does not exist in
> "src/include/parser" directory.

Oh, I see, you're building from the tarball, not from cvs. Now I see the
problem. And yeah, your solution looks like the correct one. I'll take a
look at the details and make sure it gets in there.

//Magnus


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: Yoshiyuki Asaba <y-asaba(at)sraoss(dot)co(dot)jp>, pgsql-patches(at)postgresql(dot)org
Subject: Re: Compile error with MSVC
Date: 2007-07-06 14:59:35
Message-ID: 20070706145935.GI5797@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-patches

Magnus Hagander wrote:
> Yoshiyuki Asaba wrote:
> > Hi,
> >
> > From: Magnus Hagander <magnus(at)hagander(dot)net>
> > Subject: Re: [PATCHES] Compile error with MSVC
> > Date: Thu, 05 Jul 2007 07:03:11 +0200
> >
> >>> I tried to compile using Visual C++ 2005. But I got the following
> >>> errors.
> >>>
> >>> .\src\backend\parser\keywords.c(22) : fatal error C1083: 'parser/parse.h': No such file or directory
> >>>
> >>> I saw src/tools/msvc/pgbison.bat. Why does it copy
> >>> src/backend/parser/parser.h to src/include/parser directory?
> >> <snip>
> >> While your solution may be correct (I don't recall offhand how, but it
> >> doesn't seem off the chart), I don't see how it can help you in this
> >> case. Since pgbison would copy the file there, ISTM that pgbison must
> >> have filed. Did you not get a warning output from that one earlier in
> >> your build?
> >
> > If gram.c is older than gram.y, pgbison copy parse.h by custom build
> > step. But it is newer, pgbison is skipped.
> >
> > I see the same problem in PostgreSQL 8.2.4. parse.h does not exist in
> > "src/include/parser" directory.
>
> Oh, I see, you're building from the tarball, not from cvs. Now I see the
> problem. And yeah, your solution looks like the correct one. I'll take a
> look at the details and make sure it gets in there.

Maybe what needs fixed is that the Makefile ought to copy the parse.h
file to the include dir. Using src/backend/parser as an include dir
strikes me as a bad idea.

--
Alvaro Herrera http://www.amazon.com/gp/registry/CTMLCN8V17R4
"Nunca se desea ardientemente lo que solo se desea por razón" (F. Alexandre)


From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Yoshiyuki Asaba <y-asaba(at)sraoss(dot)co(dot)jp>, pgsql-patches(at)postgresql(dot)org
Subject: Re: Compile error with MSVC
Date: 2007-07-06 16:42:59
Message-ID: 468E7113.4020009@hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-patches

Alvaro Herrera wrote:
> Magnus Hagander wrote:
>> Yoshiyuki Asaba wrote:
>>> Hi,
>>>
>>> From: Magnus Hagander <magnus(at)hagander(dot)net>
>>> Subject: Re: [PATCHES] Compile error with MSVC
>>> Date: Thu, 05 Jul 2007 07:03:11 +0200
>>>
>>>>> I tried to compile using Visual C++ 2005. But I got the following
>>>>> errors.
>>>>>
>>>>> .\src\backend\parser\keywords.c(22) : fatal error C1083: 'parser/parse.h': No such file or directory
>>>>>
>>>>> I saw src/tools/msvc/pgbison.bat. Why does it copy
>>>>> src/backend/parser/parser.h to src/include/parser directory?
>>>> <snip>
>>>> While your solution may be correct (I don't recall offhand how, but it
>>>> doesn't seem off the chart), I don't see how it can help you in this
>>>> case. Since pgbison would copy the file there, ISTM that pgbison must
>>>> have filed. Did you not get a warning output from that one earlier in
>>>> your build?
>>> If gram.c is older than gram.y, pgbison copy parse.h by custom build
>>> step. But it is newer, pgbison is skipped.
>>>
>>> I see the same problem in PostgreSQL 8.2.4. parse.h does not exist in
>>> "src/include/parser" directory.
>> Oh, I see, you're building from the tarball, not from cvs. Now I see the
>> problem. And yeah, your solution looks like the correct one. I'll take a
>> look at the details and make sure it gets in there.
>
> Maybe what needs fixed is that the Makefile ought to copy the parse.h
> file to the include dir. Using src/backend/parser as an include dir
> strikes me as a bad idea.

Well, the MSVC build is just emulating Unix regardless of if it's good
or bad :-)

Anyway. I'm not sure it matters enough to change it on Unix... It's not
like it hasn't worked well for many years ;-)

//Magnus


From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
Cc: Yoshiyuki Asaba <y-asaba(at)sraoss(dot)co(dot)jp>, pgsql-patches(at)postgresql(dot)org
Subject: Re: Compile error with MSVC
Date: 2007-07-07 07:44:51
Message-ID: 468F4473.3080001@hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-patches

Magnus Hagander wrote:
> Alvaro Herrera wrote:
>> Magnus Hagander wrote:
>>> Yoshiyuki Asaba wrote:
>>>> Hi,
>>>>
>>>> From: Magnus Hagander <magnus(at)hagander(dot)net>
>>>> Subject: Re: [PATCHES] Compile error with MSVC
>>>> Date: Thu, 05 Jul 2007 07:03:11 +0200
>>>>
>>>>>> I tried to compile using Visual C++ 2005. But I got the following
>>>>>> errors.
>>>>>>
>>>>>> .\src\backend\parser\keywords.c(22) : fatal error C1083: 'parser/parse.h': No such file or directory
>>>>>>
>>>>>> I saw src/tools/msvc/pgbison.bat. Why does it copy
>>>>>> src/backend/parser/parser.h to src/include/parser directory?
>>>>> <snip>
>>>>> While your solution may be correct (I don't recall offhand how, but it
>>>>> doesn't seem off the chart), I don't see how it can help you in this
>>>>> case. Since pgbison would copy the file there, ISTM that pgbison must
>>>>> have filed. Did you not get a warning output from that one earlier in
>>>>> your build?
>>>> If gram.c is older than gram.y, pgbison copy parse.h by custom build
>>>> step. But it is newer, pgbison is skipped.
>>>>
>>>> I see the same problem in PostgreSQL 8.2.4. parse.h does not exist in
>>>> "src/include/parser" directory.
>>> Oh, I see, you're building from the tarball, not from cvs. Now I see the
>>> problem. And yeah, your solution looks like the correct one. I'll take a
>>> look at the details and make sure it gets in there.
>> Maybe what needs fixed is that the Makefile ought to copy the parse.h
>> file to the include dir. Using src/backend/parser as an include dir
>> strikes me as a bad idea.
>
> Well, the MSVC build is just emulating Unix regardless of if it's good
> or bad :-)
>
> Anyway. I'm not sure it matters enough to change it on Unix... It's not
> like it hasn't worked well for many years ;-)

I've applied this. I didn't include your changes to clean.bat, because
clean really should clean up everything ;-) This should fix building for
people working off dev snapshot tarballs.

(If we want to change where parse.h is supposed to live, we'll take that
as a separate step)

Thanks!

//Magnus


From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Magnus Hagander <magnus(at)hagander(dot)net>
Cc: Yoshiyuki Asaba <y-asaba(at)sraoss(dot)co(dot)jp>, pgsql-patches(at)postgresql(dot)org
Subject: Re: Compile error with MSVC
Date: 2007-07-08 23:16:53
Message-ID: 20070708231653.GG5319@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-patches

Magnus Hagander wrote:

> > Anyway. I'm not sure it matters enough to change it on Unix... It's not
> > like it hasn't worked well for many years ;-)
>
> I've applied this. I didn't include your changes to clean.bat, because
> clean really should clean up everything ;-) This should fix building for
> people working off dev snapshot tarballs.
>
> (If we want to change where parse.h is supposed to live, we'll take that
> as a separate step)

I noticed that what the Makefile do is symlink parse.h into the include
dir. So it doesn't need to add a -Isrc/backend/parser.

--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support