Bug 2612 - glibc-20060306T1239 build problems on alpha
Summary: glibc-20060306T1239 build problems on alpha
Status: RESOLVED WORKSFORME
Alias: None
Product: glibc
Classification: Unclassified
Component: nptl (show other bugs)
Version: unspecified
: P2 critical
Target Milestone: ---
Assignee: Ulrich Drepper
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-04-27 12:36 UTC by Tom
Modified: 2019-04-10 08:46 UTC (History)
1 user (show)

See Also:
Host:
Target:
Build:
Last reconfirmed:
fweimer: security-


Attachments
glibc-20060306T1239 (17.06 KB, application/octet-stream)
2006-04-27 12:36 UTC, Tom
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tom 2006-04-27 12:36:21 UTC
This is the output from make check for glibc build on alpha.
FC4/5 seems to ignore this failures. Because this is build for alpha and not for
x86, I report it here, not at fedore bugzilla.

make check should run without error.

See attachment.
Comment 1 Tom 2006-04-27 12:36:59 UTC
Created attachment 987 [details]
glibc-20060306T1239
Comment 2 Tom 2006-04-27 12:43:07 UTC
I reported some problems a time ago to mr. drepper and got no answer.. :-((

Subject: [Fwd: glibc current from cvs on alpha]
Date: Tue, 21 Feb 2006 13:16:30 +0100
From: Th. Steudten 
To: drepper@redhat.com

The problem with "write successful" which should be block, is
the same on alpha and x86.
The test tf_write() writes to a pipe, and this should block the call.

man write:
"If the O_NONBLOCK flag is clear, a write request may cause the thread to block,
but on normal completion it will return
nbyte."
Independently from the ulimit and PIPE_SIZE values, the write() call blocks
for linux alpha and x86 with kernel 2.6.15 beginning with a size of 1024*1024 byte.

With this patch to tf_write() the tests runs without problem:


--- tst-cancel4.c.orig  2006-02-21 13:11:39.000000000 +0100
+++ tst-cancel4.c       2006-02-21 13:13:43.000000000 +0100
@@ -190,7 +190,7 @@
 tf_write  (void *arg)
 {
   int fd;
-  int r;
+  int r, len = 1024 * 1024;

   if (arg == NULL)
     fd = fds[1];
@@ -198,6 +198,7 @@
     {
       char fname[] = "/tmp/tst-cancel4-fd-XXXXXX";
       tempfd = fd = mkstemp (fname);
+      len = 100000;
       if (fd == -1)
        printf ("%s: mkstemp failed\n", __FUNCTION__);
       unlink (fname);
@@ -220,9 +221,9 @@
   ssize_t s;
   pthread_cleanup_push (cl, NULL);

-  char buf[100000];
+  char buf[1024 * 1024]; /* we need to block write() */
   memset (buf, '\0', sizeof (buf));
-  s = write (fd, buf, sizeof (buf));
+  s = write (fd, buf, len);

   pthread_cleanup_pop (0);
Comment 3 Ulrich Drepper 2006-05-01 19:12:47 UTC
This is fixed differently for quite some time.  Check the current sources.