tech-pkg archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: pkgsrc/pkgtools/pkg_install on OpenBSD/amd64



Hi,

From: Ryo ONODERA <ryo_on%yk.rim.or.jp@localhost>, Date: Sat, 11 Jan 2014 
07:35:10 +0900 (JST)

> Hi,
> 
> From: Greg Troxel <gdt%ir.bbn.com@localhost>, Date: Fri, 10 Jan 2014 14:22:49 
> -0500
> 
>> 
>> Ryo ONODERA <ryo_on%yk.rim.or.jp@localhost> writes:
>> 
>>> Hi,
>>>
>>> From: Greg Troxel <gdt%ir.bbn.com@localhost>, Date: Thu, 09 Jan 2014 
>>> 10:14:07 -0500
>>>
>>>> 
>>>> Ryo ONODERA <ryo_on%yk.rim.or.jp@localhost> writes:
>>>> 
>>>>>> OpenBSD/amd64's "uname -p" and "uname -m" returns "amd64".
>>>>>> And /usr/include/machine/param.h has following lines.
>>>>>> 
>>>>>> #define MACHINE_ARCH    "amd64"
>>>>>> 
>>>>>> It results pkg_add command is configured for amd64 not x86_64.
>>>> 
>>>> I think the real issue is lack of standard values for -p and -m.  As I
>>>> understand it, -p is for processor, and should be x86_64, whereas -m is
>>>> for machine and should be amd64, at least in the BSD world.  At least
>>>> that's what NetBSD does.
>>>> 
>>>> So I would be inclined to have the code in pkgsrc and tools that obtains
>>>> "uname -p" output change amd64 to x86_64, and have that be a general
>>>> subsitution framework.  The other alternative is to put in amd64 as an
>>>> alias in he code that uses the uname -p values.
>>>
>>> I think that the problem is in /usr/include/machine/param.h, not in output
>>> of uname.
>>> It has 
>>> #define MACHINE_ARCH "amd64"
>>> MACHINE_ARCH macro is used in bmake and pkg_install.
>>> Doing sed -e 's/amd64/x86_64/' for output of uname is easy,
>>> for example os.sh, machine.sh, config.guess etc.
>>> But it does not effect to MACHINE_ARCH macro.
>>>
>>> How to substitute MACHINE_ARCH macro with another value?
>> 
>> In our compat header:
>> 
>> #if MACHINE_ARCH == "amd64"
>> #undef MACHINE_ARCH
>> #define MACHINE_ARCH "x86_64"
>> #endif
>> 
>> Maybe I'm missing something, but that approach seems straightforward.
> 
> #if MACHINE_ARCH == "amd64"
> does not work for me. 
> See http://c-faq.com/cpp/ifstrcmp.html
> "How can I construct preprocessor #if expressions which compare strings?"
> 
> But I may misunderstand something...

If no one have better idea, I want to add amd64 to LP64PLATFORMS.

Any more suggestions?

--
Ryo ONODERA // ryo_on%yk.rim.or.jp@localhost
PGP fingerprint = 82A2 DC91 76E0 A10A 8ABB  FD1B F404 27FA C7D1 15F3


Home | Main Index | Thread Index | Old Index