upgrade glibc

Jakub Bogusz qboosh w pld-linux.org
Czw, 15 Sty 2004, 23:10:40 CET


On Thu, Jan 15, 2004 at 10:53:04PM +0100, Mariusz Mazur wrote:
> On Thursday 15 of January 2004 18:11, Jakub Bogusz wrote:
> > > To ja się podepnę. Mogę te glibce co są w ready przenosić, czy jeszcze
> > > jakoś popsute są?
> >
> > Właśnie to o czym pisałem zostało do naprawienia.
> 
> Czyli czekamy, aż jajcus sprawdzi jak wyszły w praktyce jego poprawki na rpma.
> 
> > I zepsute buildery i686 i athlon.
> 
> Tzn? Musiało mi umknąć jak o tym pisałeś, bo tylko kojarzę, że walczyłeś z 
> alphą (i wygrałeś :).

Nie działają wątki - wywala się budowanie glib2a, php, ...

$ sudo chroot ~/chroot-athlon/ su - builder2 -c 'export LC_ALL=C; ./strace -v ./pt'
[...]
sigreturn()                             = ? (mask now [RTMIN])
waitpid(16609, NULL, __WCLONE)          = 16609
exit_group(0)                           = ?

natomiast to samo wywołane przez pythona (kawałek wycięty z pld-builder.new):
$ python testch.py
execve("./pt", ["./pt"], [/* 19 vars */]) = 0
[...]
sigreturn()                             = ? (mask now [RTMIN])
waitpid(16671, NULL, __WCLONE)          = 16671
exit_group(11)                          = ?

11 czyli EAGAIN.


Nie mogę porównać z builderem i586 (gdzie wątki działają), bo tam jest
noptrace.


$ cat testch.py
import os
import re

def quote(cmd):
  return re.sub("([\"\\\\$`])", r"\\\1", cmd)

def command(cmd, user = None):
  if user == None:
    user = "builder2"
  return "sudo chroot chroot-athlon su - %s -c \"export LC_ALL=C; %s\"" \
                % (user, quote(cmd))

def popen(cmd, user = "builder2", mode = "r"):
  f = os.popen(command(cmd, user), mode)
  return f

def run(cmd, user = "builder2", logfile = None):
  c = command(cmd, user)
  if logfile != None:
    c = "%s >> %s 2>&1" % (c, logfile)
  f = os.popen(c)
  for l in f.xreadlines():
    pass
  r = f.close()
  if r == None:
    return 0
  else:
    return r

run("./strace -v ./pt")

$ sudo chroot chroot-athlon su - builder2 -c 'cat pt.c'
mesg: (null): Operation not permitted
#include <pthread.h>
#include <stddef.h>

void *thread_routine(void *data) {
    return data;
}

int main() {
    pthread_t thd;
    pthread_mutexattr_t mattr;
    pthread_once_t once_init = PTHREAD_ONCE_INIT;
    int data = 1;
    pthread_mutexattr_init(&mattr);
    return pthread_create(&thd, NULL, thread_routine, &data);
}


-- 
Jakub Bogusz    http://cyber.cs.net.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl