Current-Users archive

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

Re: Strange MAKEDEV problem



On 21 March 2012 11:17, J. Hannken-Illjes <hannken%eis.cs.tu-bs.de@localhost> 
wrote:
> On Mar 21, 2012, at 11:59 AM, Chavdar Ivanov wrote:
>
>> On 21 March 2012 10:56, Alan Barrett <apb%cequrux.com@localhost> wrote:
>>> On Wed, 21 Mar 2012, Chavdar Ivanov wrote:
>>>>
>>>> root@support6 /devi # chmod +x
>>>> /usr/obj/auto-current/tools/bin/nbmake-amd64
>>>> root@support6 /devi # ls -l /usr/obj/auto-current/tools/bin/nbmake-amd64
>>>> -rw-r--r--  1 root  wheel  1304 Mar 21 09:52
>>>> /usr/obj/auto-current/tools/bin/nbmake-amd64
>>>> root@support6 /devi # chmod 755
>>>> /usr/obj/auto-current/tools/bin/nbmake-amd64
>>>> root@support6 /devi # ls -l /usr/obj/auto-current/tools/bin/nbmake-amd64
>>>> -rw-r--r--  1 root  wheel  1304 Mar 21 09:52
>>>> /usr/obj/auto-current/tools/bin/nbmake-amd64
>>>
>>>
>>> That sort of bug in chmod would explain all the MAKEDEV problems from
>>> your previous message.
>>
>> Exactly. ktruss of chmod +x ... gives:
>>
>> 3716      1 chmod
>> chmod("/usr/obj/auto-current/tools/bin/nbmake-amd64", 0x81a4) = 0
>>
>> which is still 644. Rebuilding chmod with USETOOLS=no did not make any
>> difference.
>
> Could you try to change lib/libc/gen/setmode.c as:
>
> -addcmd(BITCMD *set, mode_t oparg, mode_t who, mode_t op, mode_t mask)
> +addcmd(BITCMD *set, mode_t op, mode_t who, mode_t oparg, mode_t mask)

With this change only iot didn't compile. I reverted to the previous
1.31 version and now it is OK. The full diff was as follows:

 diff   setmode.c.1.31 setmode.c.1.32
1c1
< /*    $NetBSD: setmode.c,v 1.31 2005/10/01 20:08:01 christos Exp $    */
---
> /*    $NetBSD: setmode.c,v 1.32 2012/03/20 16:36:05 matt Exp $        */
40c40
< __RCSID("$NetBSD: setmode.c,v 1.31 2005/10/01 20:08:01 christos Exp $");
---
> __RCSID("$NetBSD: setmode.c,v 1.32 2012/03/20 16:36:05 matt Exp $");
80,81c80,81
< static BITCMD *addcmd __P((BITCMD *, mode_t, mode_t, mode_t, mode_t));
< static void    compress_mode __P((BITCMD *));
---
> static BITCMD *addcmd(BITCMD *, mode_t, mode_t, mode_t, mode_t);
> static void    compress_mode(BITCMD *);
83c83
< static void    dumpmode __P((BITCMD *));
---
> static void    dumpmode(BITCMD *);
370,372c370
< addcmd(set, op, who, oparg, mask)
<       BITCMD *set;
<       mode_t oparg, who, op, mask;
---
> addcmd(BITCMD *set, mode_t oparg, mode_t who, mode_t op, mode_t mask)
419,420c417
< dumpmode(set)
<       BITCMD *set;
---
> dumpmode(BITCMD *set)
443,444c440
< compress_mode(set)
<       BITCMD *set;
---
> compress_mode(BITCMD *set)
----------
>
> Looks like a typo from matt.

May be a bit more, but thanks for finding it so quickly.

Chavdar
>
> --
> Juergen Hannken-Illjes - hannken%eis.cs.tu-bs.de@localhost - TU Braunschweig 
> (Germany)



-- 
----


Home | Main Index | Thread Index | Old Index