Re: Suggestion for MSVC build

From: Magnus Hagander <magnus(at)hagander(dot)net>
To: Chuck McDevitt <cmcdevitt(at)greenplum(dot)com>
Cc: pgsql-hackers(at)postgresql(dot)org
Subject: Re: Suggestion for MSVC build
Date: 2007-09-24 08:30:18
Message-ID: 20070924083018.GB5501@svr2.hagander.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

What version readline are you using?

I tried with the latest download, and I get about 200 warnings like:
1>.\src\bin\psql\tab-complete.c(600) : warning C4013: 'completion_matches'
undef
ined; assuming extern returning int
1>.\src\bin\psql\tab-complete.c(600) : warning C4047: '=' : 'char **'
differs in
levels of indirection from 'int'

And also, 12 linker errors - pretty much all the readline stuff. A quick
look at the files seem to show that the readline.lib and history.lib files
that ship with gnuwin32 are empty of symbols. The .def files are also
empty. Are yours different?

Also, do you know if this version of readline actually works on non-US
locales, or if it's still broken there? (I'd test it myself if I could just
build it :-P)

//Magnus

On Sun, Sep 23, 2007 at 10:03:09PM -0400, Chuck McDevitt wrote:
> It seems like there isn't any good reason the perl scripts for the MSVC
> build don't support readline
>
>
>
> Readline for windows is available as part of the GnuWin32 project.
>
>
>
> http://gnuwin32.sourceforge.net/packages/readline.htm
>
>
>
> It normally installs to "c:\Program Files\GnuWin32"
>
>
>
> I'd update the scripts myself, but I'm not a PERL programmer.
>
> From what I can see, you'd add another line to config.pl for readline,
> and then add some stuff to mkvcbuild.pm for psql to do something like:
>
>
>
> if ($solution->{options}->{readline})
>
> {
>
>
> $psql->AddIncludeDir($solution->{options}->{readline} . '\include');
>
>
> $psql->AddLibrary($solution->{options}->{readline} .
> '\lib\readline.lib');
>
>
> $psql->AddLibrary($solution->{options}->{readline} .
> '\lib\history.lib');
>
> }
>
>
>
> And something to solution.pm in the part that builds pg_config.h that
> looks something like:
>
>
>
> if ($self->{options}->{readline})
>
> {
>
> print O "#define
> HAVE_LIBREADLINE 1\n";
>
> print O "#define
> HAVE_READLINE_READLINE_H 1\n";
>
> print O "#define
> HAVE_READLINE_HISTORY_H 1\n";
>
> print O "#define
> USE_READLINE 1\n";
>
> print O "#define
> USE_READLINE_STATIC 1\n";
>
> }
>
> (Not sure about the last line).
>
>
>
> I don't know if this is a good idea, but I would think this would make
> psql more "user-friendly" on windows.
>
>
>
> Perhaps someone who understands readline and perl better than me might
> want to take this on?
>
>
>

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2007-09-24 09:02:10 Re: [COMMITTERS] pgsql: Reduce the size of memory allocations by lazy vacuum when
Previous Message Magnus Hagander 2007-09-24 07:33:23 Re: Problem with MSVC install script