Re: It seems no Windows buildfarm members are running find_typedefs

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: It seems no Windows buildfarm members are running find_typedefs
Дата
Msg-id 533CB9C8.4050407@dunslane.net
обсуждение исходный текст
Ответ на Re: It seems no Windows buildfarm members are running find_typedefs  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: It seems no Windows buildfarm members are running find_typedefs  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
On 04/02/2014 08:43 PM, Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
>> BTW, three animals are currently trying to contribute typedefs but
>> aren't in fact contributing anything: okapi, dromedary and prairiedog.
>> See <http://www.pgbuildfarm.org/cgi-bin/typedefs.pl?show_list=1>
> Man, that's a short list.  I wonder if we need to encourage more people
> to do this.
>
>> I can't really help much on these as my Gentoo facilities are
>> non-existent, and my OSX facilities are not much better. I do recall
>> trying to find a way to get typedefs on OSX a few years ago, without
>> success.
> I poked around a bit, and so far as I can tell, OS X does not store debug
> symbol tables in executables.  It looks like gdb goes to the .o files when
> it wants debug info.  What's in the .o files is good ol' DWARF (at least
> in reasonably recent OS X releases), so it's not any harder to pull out
> the typedef names than it is on Linux.  The problem is that you gotta
> iterate over all the .o files in the build tree rather than the installed
> executables.  I looked at fixing find_typedefs but it seems like it's
> pretty fixated on the latter approach; any thoughts on how to revise it?
>
>             


Well, the reason it's that way is that that's the way it was done before 
the buildfarm took over the task. But it's not holy writ. Doing 
something else would be a SMOC.

Essentially, I think the part that would need to change is this:
        foreach my $bin (            glob("$installdir/bin/*"),            glob("$installdir/lib/*"),
glob("$installdir/lib/postgresql/*")         )
 

For OSX we'd construct the list via File::Find to recurse through the 
directories.

So, something like this:

   my $using_osx = [some test for OSX];   my @testfiles;   my $obj_wanted = sub {        /^.*\.o\z/s &&
push(@testfiles,$File::Find::name);   };   if ($using_osx)   {        File::Find::find($obj_wanted,$pgsql);   }   else
{     @testfiles = (            glob("$installdir/bin/*"),            glob("$installdir/lib/*"),
glob("$installdir/lib/postgresql/*");  }   foreach my $bin (@testfiles)
 


cheers

andrew



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: It seems no Windows buildfarm members are running find_typedefs
Следующее
От: Wim Lewis
Дата:
Сообщение: Re: It seems no Windows buildfarm members are running find_typedefs