1. Enable kqueue support (you still need to st_set_eventsys(ST_EVENTSYS_ALT)

2. Add a patch to resolve stack issues with varargs users on AMD64
3. Take over maintainerhip
4. Bump PORTREVISION

Approved by:	(3) lippe (previous maintainer)
This commit is contained in:
Anton Berezin 2014-12-17 11:15:13 +00:00
parent c5fc7b300c
commit 3375afb87a
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=374838
3 changed files with 25 additions and 3 deletions

View file

@ -3,11 +3,11 @@
PORTNAME= st
PORTVERSION= 1.9
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= devel
MASTER_SITES= SF/${PORTNAME}ate-threads/${PORTNAME}ate-threads/${PORTVERSION}
MAINTAINER= lippe@FreeBSD.org
MAINTAINER= tobez@FreeBSD.org
COMMENT= State Threads Library for Internet Applications
USES= uidfix

View file

@ -9,6 +9,6 @@ LIB= st
NO_PROFILE= yes
SRCS= io.c key.c sched.c stk.c sync.c event.c
CFLAGS+= -DFREEBSD
CFLAGS+= -DFREEBSD -DMD_HAVE_KQUEUE
.include <bsd.lib.mk>

22
devel/st/files/patch-md.h Normal file
View file

@ -0,0 +1,22 @@
--- md.h 2009-10-01 20:46:43.000000000 +0200
+++ md.h 2014-12-16 22:52:34.000000000 +0100
@@ -161,6 +161,19 @@
#define MD_JB_SP 34
#elif defined(__amd64__)
#define MD_JB_SP 2
+/*
+ * The following comment is taken from src/lib/libc/amd64/gen/makecontext.c
+ * It explains why we specifically break the alignment to 64 byte boundary
+ * that is unconditionally enforced by sched.c, by setting MD_STACK_PAD_SIZE
+ * to this funky value.
+ * Without this, anything using va_start() & friends fails unpredictably.
+ */
+ /*
+ * Account for arguments on stack and do the funky C entry alignment.
+ * This means that we need an 8-byte-odd alignment since the ABI expects
+ * the return address to be pushed, thus breaking the 16 byte alignment.
+ */
+#define MD_STACK_PAD_SIZE 8
#else
#error Unknown CPU architecture
#endif