Follow @Openwall on Twitter for new release announcements and other news
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date: Tue, 15 Jul 2014 18:16:47 -0700
From: Isaac Dunham <ibid.ag@...il.com>
To: musl@...ts.openwall.com, alpine-devel@...ts.alpinelinux.org
Subject: what should be done with SA_INTERRUPT? (gpm 1.20.7)

On alpine, gpm 1.20.7 doesn't build completely, so I've been poking at it.
There were numerous cases of sys/select.h being omitted, but the biggest
issue I've hit so far is the use of SA_INTERRUPT in a call to sigaction();
the purpose is to break out of select() without it getting restarted.
musl does not define or support SA_INTERRUPT, as far as I can tell (I
seem to recall that musl forces SA_RESTART).

This is in src/prog/gpm-root.y, which is the source for the "gpm-root"
utility.

Any idea what to do about this?
I could build gpm without it, but (a) I'd like to see the whole mess
build, and (b) I'm not sure how to tell make that it can skip gpm-root.

As a temporary fix, I'm using this patch:
-#if defined(__GLIBC__)
-   __sigemptyset(&childaction.sa_mask);
-#else /* __GLIBC__ */
-   childaction.sa_mask=0;
-#endif /* __GLIBC__ */
+   sigemptyset(&childaction.sa_mask);
+#ifdef SA_INTERRUPT
    childaction.sa_flags=SA_INTERRUPT; /* need to break the select() call */
+#endif


Thanks,
Isaac Dunham

Powered by blists - more mailing lists

Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.