Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 8 Mar 2016 06:53:10 +0000 (UTC)
From:      Kurt Jaeger <pi@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r410604 - in head/sysutils/mcelog: . files
Message-ID:  <201603080653.u286rAHc055418@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: pi
Date: Tue Mar  8 06:53:10 2016
New Revision: 410604
URL: https://svnweb.freebsd.org/changeset/ports/410604

Log:
  sysutils/mcelog: 1.0pre3 -> 133
  
  - Added version prefix
  - Switched to github over master sites
  - Removed patch_strip
  - Changed hard LDFLAGS to include
  - Fixed version in source
  - Updated distfile
  - Regenerated patchfiles for portlint
  - Modified several patchfiles, adapted to new version
  - submitter becomes maintainer
  
  PR:		207145
  Submitted by:	Ultima1252@gmail.com
  Approved by:	Jeremy Chadwick <jdc@koitsu.org> (maintainer)

Modified:
  head/sysutils/mcelog/Makefile
  head/sysutils/mcelog/distinfo
  head/sysutils/mcelog/files/patch-Makefile
  head/sysutils/mcelog/files/patch-cache.c
  head/sysutils/mcelog/files/patch-client.c
  head/sysutils/mcelog/files/patch-eventloop.c
  head/sysutils/mcelog/files/patch-intel.c
  head/sysutils/mcelog/files/patch-mcelog.c
  head/sysutils/mcelog/files/patch-mcelog.h
  head/sysutils/mcelog/files/patch-memdb.c
  head/sysutils/mcelog/files/patch-p4.c
  head/sysutils/mcelog/files/patch-server.c
  head/sysutils/mcelog/files/patch-tsc.c

Modified: head/sysutils/mcelog/Makefile
==============================================================================
--- head/sysutils/mcelog/Makefile	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/Makefile	Tue Mar  8 06:53:10 2016	(r410604)
@@ -2,34 +2,31 @@
 # $FreeBSD$
 
 PORTNAME=	mcelog
-DISTVERSION=	1.0pre3
+DISTVERSIONPREFIX=	v
+DISTVERSION=	133
 CATEGORIES=	sysutils
-MASTER_SITES=	ftp://ftp.kernel.org/pub/linux/utils/cpu/mce/ \
-		http://147.52.159.12/mirrors/ftp.kernel.org/pub/linux/utils/cpu/mce/ \
-		http://ftp.sjtu.edu.cn/sites/ftp.kernel.org/pub/linux/utils/cpu/mce/ \
-		http://mirror.be.gbxs.net/pub/linux/utils/cpu/mce/ \
-		http://ftp.eu.openbsd.org/pub/linux/utils/cpu/mce/ \
-		http://korg.cs.utah.edu/pub/linux/utils/cpu/mce/ \
-		http://ftp.oregonstate.edu/pub/linux/utils/cpu/mce/
 
-MAINTAINER=	jdc@koitsu.org
+MAINTAINER=	ultima1252@gmail.com
 COMMENT=	Collects and decodes Machine Check Exception data
 
 LICENSE=	GPLv2
 
-ONLY_FOR_ARCHS=	amd64 i386 ia64
+USE_GITHUB=	yes
+GH_ACCOUNT=	andikleen
 
-PATCH_STRIP=	-p1
+ONLY_FOR_ARCHS=	amd64 i386 ia64
 
 USES=		alias gmake
 
 MAKE_ENV+=	FREEBSD=1
-LDFLAGS=	-lkvm
+LDFLAGS+=	-lkvm
 
 PLIST_FILES=	bin/mcelog man/man8/mcelog.8.gz
 
 post-patch:
 	@${CP} ${FILESDIR}/memstream.c ${WRKSRC}/memstream.c
+	${REINPLACE_CMD} 's/\"unknown\"/\"${PORTVERSION}\"/' \
+		${WRKSRC}/Makefile
 
 do-install:
 	${INSTALL_PROGRAM} ${WRKSRC}/mcelog ${STAGEDIR}${PREFIX}/bin

Modified: head/sysutils/mcelog/distinfo
==============================================================================
--- head/sysutils/mcelog/distinfo	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/distinfo	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,2 +1,2 @@
-SHA256 (mcelog-1.0pre3.tar.gz) = 0782e0aa952fa4bd641071e6b501774a63993a813a4f494ffd7819521a13c50c
-SIZE (mcelog-1.0pre3.tar.gz) = 176649
+SHA256 (andikleen-mcelog-v133_GH0.tar.gz) = 3b16bbbbd1f92501b046190b69f236e80def4b8de71f0ef86f89ec99bdc6dff5
+SIZE (andikleen-mcelog-v133_GH0.tar.gz) = 298521

Modified: head/sysutils/mcelog/files/patch-Makefile
==============================================================================
--- head/sysutils/mcelog/files/patch-Makefile	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-Makefile	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,44 +1,56 @@
---- Makefile.orig	2010-01-21 02:36:52 UTC
+--- Makefile.orig	2016-02-10 18:38:43 UTC
 +++ Makefile
 @@ -1,5 +1,4 @@
 -CFLAGS := -g -Os
 -prefix := /usr
 +prefix := /usr/local
  etcprefix :=
+ MANDIR := ${prefix}/share/man
  # Define appropiately for your distribution
- # DOCDIR := /usr/share/doc/packages/mcelog
-@@ -28,11 +27,18 @@ all: mcelog
+@@ -32,13 +31,19 @@ all: mcelog
  
- .PHONY: install clean depend
+ .PHONY: install clean depend FORCE
  
 +LIBS :=
  OBJ := p4.o k8.o mcelog.o dmi.o tsc.o core2.o bitfield.o intel.o \
         nehalem.o dunnington.o tulsa.o config.o memutil.o msg.o   \
 -       eventloop.o leaky-bucket.o memdb.o server.o trigger.o 	 \
 -       client.o cache.o sysfs.o yellow.o page.o rbtree.o 	 \
--       xeon75xx.o
+-       xeon75xx.o sandy-bridge.o ivy-bridge.o haswell.o		 \
+-       broadwell_de.o broadwell_epex.o msr.o bus.o \
+-       unknown.o
 +       eventloop.o leaky-bucket.o memdb.o server.o client.o 	 \
-+       cache.o rbtree.o xeon75xx.o
++       cache.o rbtree.o xeon75xx.o sandy-bridge.o ivy-bridge.o	\
++       haswell.o broadwell_de.o broadwell_epex.o msr.o
 +ifndef FREEBSD
-+OBJ += page.o trigger.o sysfs.o yellow.o
++OBJ += page.o trigger.o sysfs.o yellow.o bus.o unknown.o
 +endif
 +ifdef FREEBSD
 +OBJ += memstream.o
 +LIBS += -lkvm
 +endif
  DISKDB_OBJ := diskdb.o dimm.o db.o
- CLEAN := mcelog dmi tsc dbquery .depend .depend.X dbquery.o ${DISKDB_OBJ}
- DOC := mce.pdf
-@@ -48,7 +54,7 @@ endif
+ CLEAN := mcelog dmi tsc dbquery .depend .depend.X dbquery.o ${DISKDB_OBJ} \
+ 	version.o version.c version.tmp
+@@ -55,7 +60,7 @@ endif
  
  SRC := $(OBJ:.o=.c)
  
--mcelog: ${OBJ}
-+mcelog: ${OBJ} ${LIBS}
+-mcelog: ${OBJ} version.o
++mcelog: ${OBJ} ${LIBS} version.o
  
  # dbquery intentionally not installed by default
- install: mcelog
-@@ -82,8 +88,6 @@ depend: .depend
+ install: mcelog mcelog.conf mcelog.conf.5 mcelog.triggers.5
+@@ -94,7 +99,7 @@ depend: .depend
+ 
+ version.tmp: FORCE
+ 	( echo -n "char version[] = \"" ; 	\
+-	if type -p git >/dev/null; then 	\
++	if command -v git >/dev/null; then 	\
+ 	if [ -d .git ] ; then 			\
+ 		git describe --tags HEAD | tr -d '\n'; 	\
+ 	else 					\
+@@ -110,8 +115,6 @@ version.c: version.tmp
  .depend: ${SRC}
  	${CC} -MM -I. ${SRC} > .depend.X && mv .depend.X .depend
  

Modified: head/sysutils/mcelog/files/patch-cache.c
==============================================================================
--- head/sysutils/mcelog/files/patch-cache.c	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-cache.c	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,5 +1,5 @@
---- ./cache.c.orig	2009-12-15 07:18:40.000000000 -0500
-+++ ./cache.c	2011-10-14 22:36:47.000000000 -0400
+--- cache.c.orig	2016-02-10 18:38:43 UTC
++++ cache.c
 @@ -27,6 +27,7 @@
  #include "sysfs.h"
  #include "cache.h"
@@ -8,7 +8,7 @@
  struct cache { 
  	unsigned level;
  	/* Numerical values must match MCACOD */
-@@ -164,6 +165,15 @@
+@@ -173,6 +174,15 @@ int cache_to_cpus(int cpu, unsigned leve
  	Wprintf("Cannot find sysfs cache for CPU %d", cpu);
  	return -1;
  }

Modified: head/sysutils/mcelog/files/patch-client.c
==============================================================================
--- head/sysutils/mcelog/files/patch-client.c	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-client.c	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,5 +1,5 @@
---- ./client.c.orig	2009-12-15 07:18:40.000000000 -0500
-+++ ./client.c	2011-10-14 22:36:47.000000000 -0400
+--- client.c.orig	2016-02-10 18:38:43 UTC
++++ client.c
 @@ -18,6 +18,7 @@
  #include <stdio.h>
  #include <sys/socket.h>
@@ -8,7 +8,7 @@
  #include <unistd.h>
  #include "mcelog.h"
  #include "client.h"
-@@ -48,6 +49,9 @@
+@@ -48,6 +49,9 @@ void ask_server(char *command) 
  			sizeof(struct sockaddr_un)) < 0)
  		SYSERRprintf("client connect");
  	

Modified: head/sysutils/mcelog/files/patch-eventloop.c
==============================================================================
--- head/sysutils/mcelog/files/patch-eventloop.c	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-eventloop.c	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,6 +1,6 @@
---- eventloop.c.orig	2010-01-20 18:36:52.000000000 -0800
-+++ eventloop.c	2012-09-22 02:25:13.281116126 -0700
-@@ -38,7 +38,9 @@
+--- eventloop.c.orig	2016-02-10 18:38:43 UTC
++++ eventloop.c
+@@ -38,7 +38,9 @@ struct pollcb { 
  static struct pollfd pollfds[MAX_POLLFD];
  static struct pollcb pollcbs[MAX_POLLFD];	
  
@@ -10,7 +10,7 @@
  
  static int closeonexec(int fd)
  {
-@@ -97,6 +99,7 @@
+@@ -97,6 +99,7 @@ static void poll_callbacks(int n)
  }
  
  /* Run signal handler only directly after event loop */
@@ -18,7 +18,7 @@
  int event_signal(int sig)
  {
  	static int first = 1;
-@@ -126,17 +129,25 @@
+@@ -126,17 +129,25 @@ static int ppoll_fallback(struct pollfd 
  
  static int (*ppoll_vec)(struct pollfd *, nfds_t, const struct timespec
  			*, const sigset_t *);

Modified: head/sysutils/mcelog/files/patch-intel.c
==============================================================================
--- head/sysutils/mcelog/files/patch-intel.c	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-intel.c	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,15 +1,6 @@
---- intel.c.orig	2010-01-20 18:36:52.000000000 -0800
-+++ intel.c	2012-09-22 01:58:40.204115724 -0700
-@@ -43,7 +43,7 @@
- 			return CPU_CORE2;
- 		else if (model == 0x1d)
- 			return CPU_DUNNINGTON;
--		else if (model == 0x1a)
-+		else if (model == 0x1a || model == 0x2c) /* Nehalem/Westmere */
- 			return CPU_NEHALEM;
- 		else if (model == 0x2e)
- 			return CPU_XEON75XX;
-@@ -94,14 +94,18 @@
+--- intel.c.orig	2016-02-10 18:38:43 UTC
++++ intel.c
+@@ -141,14 +141,18 @@ static int intel_memory_error(struct mce
  		if (recordlen > offsetof(struct mce, mcgcap) && m->mcgcap & MCG_CMCI_P)
   			corr_err_cnt = EXTRACT(m->status, 38, 52);
  		memory_error(m, channel[0], dimm[0], corr_err_cnt, recordlen);

Modified: head/sysutils/mcelog/files/patch-mcelog.c
==============================================================================
--- head/sysutils/mcelog/files/patch-mcelog.c	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-mcelog.c	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,5 +1,5 @@
---- mcelog.c.orig	2010-01-20 18:36:52.000000000 -0800
-+++ mcelog.c	2012-09-22 02:34:19.182116917 -0700
+--- mcelog.c.orig	2016-02-10 18:38:43 UTC
++++ mcelog.c
 @@ -20,9 +20,22 @@
  #define _GNU_SOURCE 1
  #include <sys/fcntl.h>
@@ -23,9 +23,9 @@
  #include <stdlib.h>
  #include <stdio.h>
  #include <string.h>
-@@ -58,9 +71,25 @@
- #include "yellow.h"
- #include "page.h"
+@@ -61,9 +74,25 @@
+ #include "bus.h"
+ #include "unknown.h"
  
 +struct mca_record {
 +	uint64_t	mr_status;
@@ -49,7 +49,7 @@
  
  int ignore_nodev;
  int filter_bogus = 1;
-@@ -71,12 +100,18 @@
+@@ -74,7 +103,9 @@ int ascii_mode;
  int dump_raw_ascii;
  int daemon_mode;
  static char *inputfile;
@@ -59,31 +59,33 @@
  static int foreground;
  int filter_memory_errors;
  static struct config_cred runcred = { .uid = -1U, .gid = -1U };
- static int numerrors;
- static char *pidfile;
+@@ -83,6 +114,10 @@ static char pidfile_default[] = PID_FILE
+ static char logfile_default[] = LOG_FILE;
+ static char *pidfile = pidfile_default;
+ static char *logfile;
 +#ifdef __FreeBSD__
 +static char *execfile;
 +static char *corefile;
 +#endif
- 
- static void check_cpu(void);
- 
-@@ -393,6 +428,7 @@
+ static int debug_numerrors;
+ int imc_log = -1;
+ static int check_only = 0;
+@@ -482,6 +517,7 @@ static void dump_mce_raw_ascii(struct mc
  	Wprintf("\n");
  }
  
 +#ifdef __Linux__
- void check_cpu(void)
+ int is_cpu_supported(void)
  { 
  	enum { 
-@@ -460,7 +496,45 @@
- 	} else
- 		Eprintf("warning: Cannot open /proc/cpuinfo\n");
+@@ -552,13 +588,58 @@ int is_cpu_supported(void)
+ 
+ 	return 1;
  } 
 +#endif
-+
+ 
 +#ifdef __FreeBSD__
-+void check_cpu(void)
++int is_cpu_supported(void)
 +{
 +	char vendor[20];
 +	u_int regs[4];
@@ -92,7 +94,7 @@
 +	static int checked;
 +
 +	if (checked)
-+		return;
++		return 1;
 +
 +	checked = 1;
 +
@@ -109,28 +111,33 @@
 +
 +	if (cpu_forced)
 +		;
-+	else if (!strcmp(vendor,"AuthenticAMD") &&
-+	    (family == 15 || family == 16 || family == 17))
-+		cputype = CPU_K8;
-+	else if (!strcmp(vendor,"GenuineIntel"))
-+		cputype = select_intel_cputype(family, model);
++	else if (!strcmp(vendor,"AuthenticAMD")) {
++			if (family == 15) {
++				cputype = CPU_K8;
++			} else if (family >= 16) {
++				SYSERRprintf("ERROR: AMD Processor family %d: mcelog does not support this processor.  Please use the edac_mce_amd module instead.\n", family);
++				return 0;
++			}
++		} else if (!strcmp(vendor,"GenuineIntel"))
++			cputype = select_intel_cputype(family, model);
 +	/* Add checks for other CPUs here */
++		else
++		return 1;
 +}
 +#endif
- 
++
 +#ifdef __Linux__
  static char *skipspace(char *s)
  {
  	while (isspace(*s))
-@@ -484,6 +558,7 @@
- 	}
- 	return skipspace(s);
+ 		++s;
+ 	return s;
  }
 +#endif
  
- static void dump_mce_final(struct mce *m, char *symbol, int missing, int recordlen, 
- 			   int dseen)
-@@ -507,6 +582,7 @@
+ static char *skip_syslog(char *s)
+ {
+@@ -667,6 +748,7 @@ static int match_patterns(char *s, char 
  		recordlen = endof_field(struct mce, f)
  
  /* Decode ASCII input for fatal messages */
@@ -138,7 +145,7 @@
  static void decodefatal(FILE *inf)
  {
  	struct mce m;
-@@ -651,6 +727,227 @@
+@@ -877,6 +959,227 @@ restart:
  	if (data)
  		dump_mce_final(&m, symbol, missing, recordlen, disclaimer_seen);
  }
@@ -366,7 +373,7 @@
  
  static void remove_pidfile(void)
  {
-@@ -709,6 +1006,10 @@
+@@ -941,6 +1244,10 @@ void usage(void)
  "  mcelog [options] --ascii < log\n"
  "  mcelog [options] --ascii --file log\n"
  "Decode machine check ASCII output from kernel logs\n"
@@ -374,12 +381,12 @@
 +"  mcelog [options] -M vmcore -N kernel\n"
 +"Decode machine check error records from kernel crashdump.\n"
 +#endif
+ "\n"
  "Options:\n"  
- "--cpu CPU           Set CPU type CPU to decode (see below for valid types)\n"
- "--cpumhz MHZ        Set CPU Mhz to decode time (output unreliable, not needed on new kernels)\n"
-@@ -889,6 +1190,14 @@
- 	case O_CONFIG_FILE:
- 		/* parsed in config.c */
+ "--version           Show the version of mcelog and exit\n"
+@@ -1147,6 +1454,14 @@ static int modifier(int opt)
+ 	case O_IS_CPU_SUPPORTED:
+ 		check_only = 1;
  		break;
 +#ifdef __FreeBSD__
 +	case 'M':
@@ -392,18 +399,20 @@
  	case 0:
  		break;
  	default:
-@@ -923,8 +1232,10 @@
+@@ -1197,10 +1512,12 @@ static int combined_modifier(int opt)
  
  static void general_setup(void)
  {
 +#ifdef __Linux__
  	trigger_setup();
  	yellow_setup();
+ 	bus_setup();
+ 	unknown_setup();
 +#endif
  	config_cred("global", "run-credentials", &runcred);
  	if (config_bool("global", "filter-memory-errors") == 1)
  		filter_memory_errors = 1;
-@@ -947,6 +1258,7 @@
+@@ -1223,6 +1540,7 @@ static void drop_cred(void)
  	}
  }
  
@@ -411,7 +420,7 @@
  static void process(int fd, unsigned recordlen, unsigned loglen, char *buf)
  {	
  	int i; 
-@@ -987,6 +1299,173 @@
+@@ -1275,6 +1593,173 @@ static void process(int fd, unsigned rec
  	if (finish)
  		exit(0);
  }
@@ -585,7 +594,7 @@
  
  static void noargs(int ac, char **av)
  {
-@@ -1045,22 +1524,30 @@
+@@ -1333,12 +1818,14 @@ struct mcefd_data {
  	char *buf;
  };
  
@@ -598,29 +607,47 @@
  }
 +#endif
  
+ static void handle_sigusr1(int sig)
+ {
+@@ -1347,13 +1834,18 @@ static void handle_sigusr1(int sig)
+ 
  int main(int ac, char **av) 
  { 
 +#ifdef __Linux__
  	struct mcefd_data d = {};
 -	int opt;
  	int fd;
+-
 +#endif
 +	int opt;
- 
  	parse_config(av);
  
-+#ifdef __FreeBSD__
-+	while ((opt = getopt_long(ac, av, "M:N:", options, NULL)) != -1) { 
++#ifdef __FreeBSD
++	while ((opt = getopt_long(ac, av, "M:N:", options, NULL)) != -1) {
 +#else
  	while ((opt = getopt_long(ac, av, "", options, NULL)) != -1) { 
 +#endif
  		if (opt == '?') {
  			usage(); 
  		} else if (combined_modifier(opt) > 0) {
-@@ -1080,13 +1567,21 @@
- 		} else if (opt == 0)
- 			break;		    
+@@ -1375,11 +1867,13 @@ int main(int ac, char **av) 
  	} 
+ 
+ 	/* before doing anything else let's see if the CPUs are supported */
++#ifdef __Linux__
+ 	if (!cpu_forced && !is_cpu_supported()) {
+ 		if (!check_only)
+ 			fprintf(stderr, "CPU is unsupported\n");
+ 		exit(1);
+ 	}
++#endif
+ 	if (check_only)
+ 		exit(0);
+ 
+@@ -1398,13 +1892,21 @@ int main(int ac, char **av) 
+ 	}
+ 
+ 	modifier_finish();
 +#ifdef __Linux__
  	if (av[optind])
  		logfn = av[optind++];
@@ -639,20 +666,21 @@
  	fd = open(logfn, O_RDONLY); 
  	if (fd < 0) {
  		if (ignore_nodev) 
-@@ -1101,24 +1596,39 @@
+@@ -1419,27 +1921,44 @@ int main(int ac, char **av) 
  		err("MCE_GET_LOG_LEN");
  
  	d.buf = xalloc(d.recordlen * d.loglen); 
 +#endif
  	if (daemon_mode) {
- 		check_cpu();
- 		prefill_memdb();
+ 		prefill_memdb(do_dmi);
  		if (!do_dmi)
  			closedmi();
  		server_setup();
 +#ifdef __Linux__
  		page_setup();
 +#endif
+ 		if (imc_log)
+ 			set_imc_log(cputype);
  		drop_cred();
 +#ifdef __Linux__
  		register_pollcb(fd, POLLIN, process_mcefd, &d);
@@ -661,6 +689,10 @@
  			err("daemon");
  		if (pidfile)
  			write_pidfile();
+ 		signal(SIGUSR1, handle_sigusr1);
++#ifdef __Linux__
+ 		event_signal(SIGUSR1);
++#endif
  		eventloop();
  	} else {
 +#ifdef __Linux__

Modified: head/sysutils/mcelog/files/patch-mcelog.h
==============================================================================
--- head/sysutils/mcelog/files/patch-mcelog.h	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-mcelog.h	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,19 +1,20 @@
---- ./mcelog.h.orig	2009-12-15 07:18:40.000000000 -0500
-+++ ./mcelog.h	2011-10-14 22:37:06.000000000 -0400
-@@ -64,9 +64,11 @@
- #define MCI_STATUS_ADDRV (1ULL<<58)  /* addr reg. valid */
- #define MCI_STATUS_PCC   (1ULL<<57)  /* processor context corrupt */
+--- mcelog.h.orig	2016-02-10 18:38:43 UTC
++++ mcelog.h
+@@ -67,10 +67,12 @@ struct mce {
+ #define MCI_STATUS_AR	 (1ULL<<55)  /* action-required */
+ #define MCI_STATUS_FWST  (1ULL<<37)  /* Firmware updated status indicator */
  
 +#ifndef MCG_STATUS_RIPV
  #define MCG_STATUS_RIPV  (1ULL<<0)   /* restart ip valid */
  #define MCG_STATUS_EIPV  (1ULL<<1)   /* eip points to correct instruction */
  #define MCG_STATUS_MCIP  (1ULL<<2)   /* machine check in progress */
+ #define MCG_STATUS_LMCES (1ULL<<3)   /* local machine check signaled */
 +#endif
  
  #define MCG_CMCI_P		(1ULL<<10)   /* CMCI supported */
  #define MCG_TES_P		(1ULL<<11)   /* Yellow bit cache threshold supported */
-@@ -89,6 +91,10 @@
- #define PRINTFLIKE 
+@@ -97,6 +99,10 @@ struct mce {
+ #define noreturn
  #endif
  
 +#if defined(__FreeBSD__) && defined(_STDIO_H_)

Modified: head/sysutils/mcelog/files/patch-memdb.c
==============================================================================
--- head/sysutils/mcelog/files/patch-memdb.c	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-memdb.c	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,7 +1,7 @@
---- ./memdb.c.orig	2009-12-15 07:18:40.000000000 -0500
-+++ ./memdb.c	2011-10-14 22:36:47.000000000 -0400
-@@ -170,7 +170,9 @@
- 	asprintf(&env[ei++], "THRESHOLD_COUNT=%d", bucket->count + bucket->excess);
+--- memdb.c.orig	2016-02-10 18:38:43 UTC
++++ memdb.c
+@@ -172,7 +172,9 @@ void memdb_trigger(char *msg, struct mem
+ 	asprintf(&env[ei++], "THRESHOLD_COUNT=%d", bucket->count);
  	env[ei] = NULL;	
  	assert(ei < MAX_ENV);
 +#ifdef __Linux__

Modified: head/sysutils/mcelog/files/patch-p4.c
==============================================================================
--- head/sysutils/mcelog/files/patch-p4.c	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-p4.c	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,13 +1,74 @@
---- ./p4.c.orig	2009-12-15 07:18:40.000000000 -0500
-+++ ./p4.c	2011-10-14 22:36:47.000000000 -0400
-@@ -175,8 +175,10 @@
+--- p4.c.orig	2016-02-10 18:38:43 UTC
++++ p4.c
+@@ -175,8 +175,10 @@ static int decode_mca(u64 status, u64 mi
+ 		levelnum = mca & 3;
+ 		level = get_LL_str(levelnum);
+ 		Wprintf("%s Generic cache hierarchy error\n", level);
++#ifdef __Linux__
+ 		if (track == 2)
+ 			run_yellow_trigger(cpu, -1, levelnum, "unknown", level, socket);
++#endif
+ 	} else if (test_prefix(4, mca)) {
+ 		unsigned levelnum, typenum;
+ 		char *level, *type;
+@@ -185,8 +187,10 @@ static int decode_mca(u64 status, u64 mi
+ 		levelnum = (mca & TLB_LL_MASK) >> TLB_LL_SHIFT;
+ 		level = get_LL_str(levelnum);
+ 		Wprintf("%s TLB %s Error\n", type, level);
++#ifdef __Linux__
+ 		if (track == 2)
+ 			run_yellow_trigger(cpu, typenum, levelnum, type, level, socket);
++#endif
+ 	} else if (test_prefix(8, mca)) {
+ 		unsigned typenum = (mca & CACHE_TT_MASK) >> CACHE_TT_SHIFT;
+ 		unsigned levelnum = (mca & CACHE_LL_MASK) >> CACHE_LL_SHIFT;
+@@ -195,8 +199,10 @@ static int decode_mca(u64 status, u64 mi
  		Wprintf("%s CACHE %s %s Error\n", type, level,
  				get_RRRR_str((mca & CACHE_RRRR_MASK) >> 
  					      CACHE_RRRR_SHIFT));
 +#ifdef __Linux__
  		if (track == 2)
- 			run_yellow_trigger(cpu, typenum, levelnum, type, level, socket);
+ 			run_yellow_trigger(cpu, typenum, levelnum, type, level,socket);
 +#endif
  	} else if (test_prefix(10, mca)) {
  		if (mca == 0x400)
  			Wprintf("Internal Timer error\n");
+@@ -215,7 +221,9 @@ static int decode_mca(u64 status, u64 mi
+ 
+ 		Wprintf("BUS error: %d %d %s %s %s %s %s\n", socket, cpu,
+ 			level, pp, rrrr, ii, timeout);
++#ifdef __Linux__
+ 		run_bus_trigger(socket, cpu, level, pp, rrrr, ii, timeout);
++#endif
+ 		/* IO MCA - reported as bus/interconnect with specific PP,T,RRRR,II,LL values
+ 		 * and MISCV set. MISC register points to root port that reported the error
+ 		 * need to cross check with AER logs for more details.
+@@ -231,7 +239,9 @@ static int decode_mca(u64 status, u64 mi
+ 			fn = EXTRACT(misc, 16, 18);
+ 			Wprintf("IO MCA reported by root port %x:%02x:%02x.%x\n",
+ 				seg, bus, dev, fn);
++#ifdef __Linux__
+ 			run_iomca_trigger(socket, cpu, seg, bus, dev, fn);
++#endif
+ 		}
+ 	} else if (test_prefix(7, mca)) {
+ 		decode_memory_controller(mca, bank);
+@@ -365,14 +375,18 @@ void decode_intel_mc(struct mce *log, in
+ 
+ 	if (log->bank == MCE_THERMAL_BANK) { 
+ 		decode_thermal(log, cpu);
++#ifdef __Linux__
+ 		run_unknown_trigger(socket, cpu, log);
++#endif
+ 		return;
+ 	}
+ 
+ 	decode_mcg(log->mcgstatus);
++#ifdef __Linux__
+ 	if (decode_mci(log->status, log->misc, cpu, log->mcgcap, ismemerr,
+ 		socket, log->bank))
+ 		run_unknown_trigger(socket, cpu, log);
++#endif
+ 
+ 	if (test_prefix(11, (log->status & 0xffffL))) {
+ 		switch (cputype) {

Modified: head/sysutils/mcelog/files/patch-server.c
==============================================================================
--- head/sysutils/mcelog/files/patch-server.c	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-server.c	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,6 +1,6 @@
---- server.c.orig	2010-01-20 18:36:52.000000000 -0800
-+++ server.c	2012-09-22 02:39:04.991117023 -0700
-@@ -101,7 +101,9 @@
+--- server.c.orig	2016-02-10 18:38:43 UTC
++++ server.c
+@@ -101,7 +101,9 @@ static void dispatch_dump(FILE *fh, char
  
  static void dispatch_pages(FILE *fh)
  {
@@ -10,7 +10,7 @@
  	fprintf(fh, "done\n");
  }
  
-@@ -137,6 +139,7 @@
+@@ -137,6 +139,7 @@ static void process_cmd(struct clientcon
  		Enomem();
  }
  
@@ -18,7 +18,7 @@
  /* check if client is allowed to access */
  static int access_check(int fd, struct msghdr *msg)
  {
-@@ -162,6 +165,35 @@
+@@ -162,11 +165,44 @@ static int access_check(int fd, struct m
  	sendstring(fd, "permission denied\n");
  	return -1;
  }
@@ -54,7 +54,16 @@
  
  /* retrieve commands from client */
  static int client_input(int fd, struct clientcon *cc)
-@@ -242,18 +274,22 @@
+ {
++#ifdef __Linux__
+ 	char ctlbuf[CMSG_SPACE(sizeof(struct ucred))];
++#else
++	char ctlbuf[CMSG_SPACE(sizeof(struct cmsgcred))];
++#endif
+ 	struct iovec miov;
+ 	struct msghdr msg = {
+ 		.msg_iov = &miov,
+@@ -242,18 +278,22 @@ static void client_accept(struct pollfd 
  {
  	struct clientcon *cc = NULL;
  	int nfd = accept(pfd->fd, NULL, 0);	
@@ -77,9 +86,9 @@
  
  	cc = xalloc(sizeof(struct clientcon));
  	if (register_pollcb(nfd, POLLIN, client_event, cc) < 0) {
-@@ -300,7 +336,12 @@
- 	sigaction(SIGALRM, &sa, &oldsa);	
+@@ -301,7 +341,12 @@ static int server_ping(struct sockaddr_u
  	if (sigsetjmp(ping_timeout_ctx, 1) == 0) {
+ 		ret = -1;
  		alarm(initial_ping_timeout);
 +#ifdef __Linux__
  		if (connect(fd, un, sizeof(struct sockaddr_un)) < 0)

Modified: head/sysutils/mcelog/files/patch-tsc.c
==============================================================================
--- head/sysutils/mcelog/files/patch-tsc.c	Tue Mar  8 06:34:24 2016	(r410603)
+++ head/sysutils/mcelog/files/patch-tsc.c	Tue Mar  8 06:53:10 2016	(r410604)
@@ -1,5 +1,5 @@
---- ./tsc.c.orig	2009-12-15 07:18:40.000000000 -0500
-+++ ./tsc.c	2011-10-14 22:36:47.000000000 -0400
+--- tsc.c.orig	2016-02-10 18:38:43 UTC
++++ tsc.c
 @@ -15,6 +15,12 @@
     on your Linux system; if not, write to the Free Software Foundation,
     Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
@@ -13,7 +13,7 @@
  #include <string.h>
  #include <stdio.h>
  #include <stdlib.h>
-@@ -46,6 +52,7 @@
+@@ -46,6 +52,7 @@ static int fmt_tsc(char **buf, u64 tsc, 
  	return 0;
  }
  
@@ -21,7 +21,7 @@
  static double cpufreq_mhz(int cpu, double infomhz)
  {
  	double mhz;
-@@ -68,12 +75,29 @@
+@@ -68,12 +75,29 @@ static double cpufreq_mhz(int cpu, doubl
  	fclose(f);
  	return mhz;
  }
@@ -51,7 +51,7 @@
  static int deep_sleep_states(int cpu)
  {
  	int ret;
-@@ -132,6 +156,41 @@
+@@ -132,6 +156,41 @@ static int tsc_reliable(int cputype, int
  		return 0;
  	return 1;
  }



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201603080653.u286rAHc055418>