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:44, Chavdar Ivanov <ci4ic4%gmail.com@localhost> wrote:
> 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.

The last failure was that libc.so was itself installed with 000
permissions, so I couldn't login as non root after the reboot...

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



-- 
----


Home | Main Index | Thread Index | Old Index