Make a new port for hourglass, as requested by David O'Brien. This port is a real-time application that can be used to learn how CPU scheduling in a general-purpose operating system works at microsecond and millisecond granularities. Tested it on 4-STABLE and 5.2.1-RELEASE. portlint -CN and portlint -abvt ok! I don't knwo how it performs with the thread library on -CURRENT (one strange thing is the dependance on linuxthreads!), so there may be some things to check here (I will be happy to integrate them). How-To-Repeat: This is a new port
Responsible Changed From-To: freebsd-ports-bugs->thierry I'll take it.
* Olivier Tharan <olive@oban.frmug.org> (20040323 22:32): > >Description: > Make a new port for hourglass, as requested by David O'Brien. > > This port is a real-time application that can be used to learn how CPU > scheduling in a general-purpose operating system works at microsecond and > millisecond granularities. > > Tested it on 4-STABLE and 5.2.1-RELEASE. > portlint -CN and portlint -abvt ok! Here is a new shar with some modifications suggested by thierry@: - use GNU_CONFIGURE - install the CALIBRATION file documentation -- olive
* Olivier Tharan <olive@oban.frmug.org> (20040323 22:32): > >Synopsis: New port: sysutils/hourglass a real-time application to learn >how CPU scheduling works Here is a new shar, with patches suggested by thierry@ to make the port LOCALBASE and CFLAGS -compliant. # This is a shell archive. Save it in a file, remove anything before # this line, and then unpack it by entering "sh file". Note, it may # create directories; files and directories will be owned by you and # have default permissions. # # This archive contains: # # hourglass # hourglass/distinfo # hourglass/Makefile # hourglass/pkg-descr # hourglass/pkg-plist # hourglass/files # hourglass/files/patch-configure # hourglass/files/patch-src::Makefile.in # echo c - hourglass mkdir -p hourglass > /dev/null 2>&1 echo x - hourglass/distinfo sed 's/^X//' >hourglass/distinfo << 'END-of-hourglass/distinfo' XMD5 (hourglass-1.0.0.tar.gz) = a282877889bddd3307e7ef7674f32415 XSIZE (hourglass-1.0.0.tar.gz) = 112374 END-of-hourglass/distinfo echo x - hourglass/Makefile sed 's/^X//' >hourglass/Makefile << 'END-of-hourglass/Makefile' X# New ports collection makefile for: hourglass X# Date created: 23 March 2004 X# Whom: olive X# X# $FreeBSD$ X# X XPORTNAME= hourglass XPORTVERSION= 1.0.0 XCATEGORIES= sysutils parallel XMASTER_SITES= http://www.cs.utah.edu/~regehr/hourglass/ X XMAINTAINER= olive@oban.frmug.org XCOMMENT= A real-time application useful to learn how CPU scheduling works X XRUN_DEPENDS= jgraph:${PORTSDIR}/graphics/jgraph X XUSE_REINPLACE= yes XGNU_CONFIGURE= yes XCONFIGURE_TARGET=--build=${MACHINE_ARCH}-portbld-freebsd${OSREL} X X.include <bsd.port.pre.mk> X X.if ${OSVERSION} >= 500035 XLIB_DEPENDS+= lthread.3:${PORTSDIR}/devel/linuxthreads X.else XLIB_DEPENDS+= lthread.2:${PORTSDIR}/devel/linuxthreads X.endif X Xpost-patch: X @${REINPLACE_CMD} -e 's,%LOCALBASE%,${LOCALBASE},g' \ X ${WRKSRC}/configure X Xpost-install: X.if !defined(NOPORTDOCS) X ${MKDIR} ${DOCSDIR} X ${INSTALL_MAN} ${WRKSRC}/CALIBRATION ${DOCSDIR} X.endif X X.include <bsd.port.post.mk> END-of-hourglass/Makefile echo x - hourglass/pkg-descr sed 's/^X//' >hourglass/pkg-descr << 'END-of-hourglass/pkg-descr' XThis is a port of hourglass, a synthetic real-time application that Xcan be used to learn how CPU scheduling in a general-purpose operating Xsystem works at microsecond and millisecond granularities. X X- It creates very detailed map of when each Hourglass thread has X access to the CPU X X- It supports multiple thread execution models; e.g. periodic and X CPU-bound X X- It acts as an abstraction layer for threading, timing, and CPU X scheduling functionality on Unix- and Win32-based systems X XWWW: http://www.cs.utah.edu/~regehr/hourglass/ END-of-hourglass/pkg-descr echo x - hourglass/pkg-plist sed 's/^X//' >hourglass/pkg-plist << 'END-of-hourglass/pkg-plist' Xbin/busy Xbin/hourglass X%%PORTDOCS%%%%DOCSDIR%%/CALIBRATION X%%PORTDOCS%%@dirrm %%DOCSDIR%% END-of-hourglass/pkg-plist echo c - hourglass/files mkdir -p hourglass/files > /dev/null 2>&1 echo x - hourglass/files/patch-configure sed 's/^X//' >hourglass/files/patch-configure << 'END-of-hourglass/files/patch-configure' X--- configure.orig Mon Apr 12 09:28:22 2004 X+++ configure Mon Apr 12 09:31:04 2004 X@@ -3994,8 +3994,10 @@ X on_unix='yes' ; X on_windows='no' ;; X *freebsd*) X- LDFLAGS='-llthread -llgcc_r -L/usr/local/lib' ; X- CFLAGS='-D_THREAD_SAFE -I/usr/local/include/pthread/linuxthreads' ; X+ CFLAGS_sav=$CFLAGS ; X+ LDFLAGS_sav=$LDFLAGS ; X+ LDFLAGS="$LDFLAGS_sav -llthread -llgcc_r -L%LOCALBASE%/lib" ; X+ CFLAGS="$CFLAGS_sav -D_THREAD_SAFE -I%LOCALBASE%/include/pthread/linuxthreads" ; X on_unix='yes' ; X on_windows='no' ;; X *cygwin*) END-of-hourglass/files/patch-configure echo x - hourglass/files/patch-src::Makefile.in sed 's/^X//' >hourglass/files/patch-src::Makefile.in << 'END-of-hourglass/files/patch-src::Makefile.in' X--- src/Makefile.in.orig Mon Apr 12 09:27:10 2004 X+++ src/Makefile.in Mon Apr 12 09:28:02 2004 X@@ -188,7 +188,7 @@ X AM_CFLAGS = -Wall -Wshadow -Wpointer-arith \ X -Wcast-qual -Wcast-align -Wwrite-strings -Wconversion \ X -Waggregate-return -Wstrict-prototypes \ X- -Wmissing-prototypes -g -O3 \ X+ -Wmissing-prototypes -g \ X $(CMU_RK_INCLUDES) $(TS_RK_INCLUDES) $(HRTIMERS_INCLUDES) \ X $(HLS_INCLUDES) $(RTCTIMERS_INCLUDES) X END-of-hourglass/files/patch-src::Makefile.in exit -- olive
State Changed From-To: open->closed Committed, thanks! (without pkg-plist)