Re: Cross-build issues in gdb/gnulib

2015-08-25 Thread Pedro Alves
Adding gnulib@

Original thread here:
 https://sourceware.org/ml/gdb/2015-08/msg00037.html

Thanks,
Pedro Alves

On 08/25/2015 02:12 PM, paul_kon...@dell.com wrote:
> 
>> On Aug 25, 2015, at 5:56 AM, Pedro Alves  wrote:
>>
>> On 08/24/2015 10:20 PM, paul_kon...@dell.com wrote:
>>> I'm running into strange problems cross-building with V7.7.1; it looks like 
>>> the same configure machinery is present in later versions as well.
>>>
>>> The problem is that the configure script in gdb/gnulib tries to run a 
>>> number of tests, by building and then executing "conftest".  It does so 
>>> unconditionally, there are no checks for whether this is a cross-build, 
>>> specifically build = x86_64-linux, host = target = netbsd.
>>
>> I have no idea why configure is trying to run the test in your case, but I 
>> just yesterday
>> updated master's gnulib copy to current upstream gnulib master.  Previously 
>> we had
>> a 2012 copy.  I don't see any AC_TRY_RUN in current master, for instance,
>> though I didn't check older versions.  In any case, try seeing if current 
>> master makes
>> a difference.
> 
> I tracked down the spot in the configure sources where the problem 
> originates.  There is no AC_TRY_RUN involved.  Instead, the issue is this bit 
> of code in gnulib/import/m4/locale-ja.m4:
> 
>   # Test for the AIX locale name.
>   if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
> then
> gt_cv_locale_ja=ja_JP
> 
> The comment refers to AIX, but it is in fact executed in the "*" case of a 
> case statement, i.e., for everything other than Windows.  The same code 
> pattern also appears in the two other locale-*.m4 files.
> 
> So it looks like that code needs some sort of guard checking for cross-build, 
> and some sort of default action if so.  I'm not particularly fluent in 
> configure unfortunately.
> 
> A quick look at the latest master shows that these files are unchanged by 
> yesterday's update (other than copyright year).
> 
>   paul
> 





Re: Cross-build issues in gdb/gnulib

2015-08-25 Thread Paul Eggert

Pedro Alves wrote:

   # Test for the AIX locale name.

  if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
then
gt_cv_locale_ja=ja_JP

The comment refers to AIX, but it is in fact executed in the "*" case of a case 
statement, i.e., for everything other than Windows.  The same code pattern also appears 
in the two other locale-*.m4 files.


I'm lost.  Do you have a specific Gnulib patch in mind?



Re: Cross-build issues in gdb/gnulib

2015-08-25 Thread Paul_Koning

> On Aug 25, 2015, at 12:58 PM, Paul Eggert  wrote:
> 
> Pedro Alves wrote:
>>   # Test for the AIX locale name.
>>>  if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
>>> then
>>>gt_cv_locale_ja=ja_JP
>>> 
>>> The comment refers to AIX, but it is in fact executed in the "*" case of a 
>>> case statement, i.e., for everything other than Windows.  The same code 
>>> pattern also appears in the two other locale-*.m4 files.
> 
> I'm lost.  Do you have a specific Gnulib patch in mind?

Perhaps you missed the original problem report, which is that this configure 
machinery doesn't take into account cross-builds.  And that broke badly on a 
build=X86_64-linux, host=i386-netbsdelf cross-build, because Linux attempted to 
execute the generated conftest image (a NetBSD image).  That's wrong of course, 
but worse yet, it got into an infinite loop, apparently the emulation is buggy. 
 So my build got stuck.

I learned about AC_RUN_IFELSE and constructed a fix with that.

paul



Re: Cross-build issues in gdb/gnulib

2015-08-25 Thread Paul_Koning

> On Aug 25, 2015, at 12:58 PM, Paul Eggert  wrote:
> 
> Pedro Alves wrote:
>>   # Test for the AIX locale name.
>>>  if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 2>/dev/null; 
>>> then
>>>gt_cv_locale_ja=ja_JP
>>> 
>>> The comment refers to AIX, but it is in fact executed in the "*" case of a 
>>> case statement, i.e., for everything other than Windows.  The same code 
>>> pattern also appears in the two other locale-*.m4 files.
> 
> I'm lost.  Do you have a specific Gnulib patch in mind?

I didn't when I wrote that -- all I had was a diagnosis of the underlying bug.

In the meantime I found an autoconf manual and constructed a fix for this 
issue.  I'll send a patch soon, want to do some more testing.

Where should the fix be sent?

paul




Re: Cross-build issues in gdb/gnulib

2015-08-25 Thread Pedro Alves
On 08/25/2015 06:06 PM, paul_kon...@dell.com wrote:
> 
>> On Aug 25, 2015, at 12:58 PM, Paul Eggert  wrote:
>>
>> Pedro Alves wrote:
>>>   # Test for the AIX locale name.
  if (LC_ALL=ja_JP LC_TIME= LC_CTYPE= ./conftest; exit) 
 2>/dev/null; then
gt_cv_locale_ja=ja_JP

 The comment refers to AIX, but it is in fact executed in the "*" case of a 
 case statement, i.e., for everything other than Windows.  The same code 
 pattern also appears in the two other locale-*.m4 files.
>>
>> I'm lost.  Do you have a specific Gnulib patch in mind?
> 
> I didn't when I wrote that -- all I had was a diagnosis of the underlying bug.
> 
> In the meantime I found an autoconf manual and constructed a fix for this 
> issue.  I'll send a patch soon, want to do some more testing.
> 
> Where should the fix be sent?

To bug-gnulib@gnu.org.  I can update gdb's copy once gnulib master has it fixed.

Thanks,
Pedro Alves