diff options
author | Dmitry Marakasov <amdmi3@FreeBSD.org> | 2016-09-11 19:18:59 +0000 |
---|---|---|
committer | Dmitry Marakasov <amdmi3@FreeBSD.org> | 2016-09-11 19:18:59 +0000 |
commit | de9c7b483246ff92347b1839a880aebc1a2c53f7 (patch) | |
tree | f4760f92d42cf722b36c00dcf0a3d9c7195e0c3d /sysutils | |
parent | 84231652500d304e006ef8ab1b64b034f3e3378c (diff) | |
download | ports-de9c7b483246ff92347b1839a880aebc1a2c53f7.tar.gz ports-de9c7b483246ff92347b1839a880aebc1a2c53f7.zip |
Notes
Diffstat (limited to 'sysutils')
-rw-r--r-- | sysutils/i7z/Makefile | 6 | ||||
-rw-r--r-- | sysutils/i7z/files/patch-helper_functions.c | 55 | ||||
-rw-r--r-- | sysutils/i7z/files/patch-i7z.c | 63 |
3 files changed, 107 insertions, 17 deletions
diff --git a/sysutils/i7z/Makefile b/sysutils/i7z/Makefile index 588067546a17..4cd947e34228 100644 --- a/sysutils/i7z/Makefile +++ b/sysutils/i7z/Makefile @@ -2,7 +2,7 @@ PORTNAME= i7z PORTVERSION= 0.27.2 -PORTREVISION= 1 +PORTREVISION= 2 CATEGORIES= sysutils MASTER_SITES= GOOGLE_CODE @@ -20,10 +20,6 @@ PLIST_FILES= bin/${PORTNAME} \ ONLY_FOR_ARCHS= i386 amd64 -# Disable scheduling flags as they cause segfaults since they are enabled at -# default FreeBSD optimization levels (-O2, -O3, -Os) -CFLAGS+= -fno-schedule-insns2 -fno-schedule-insns -fno-caller-saves - do-install: ${INSTALL_PROGRAM} ${WRKSRC}/${PORTNAME} ${STAGEDIR}${PREFIX}/bin ${INSTALL_MAN} ${WRKSRC}/doc/${PORTNAME}.man \ diff --git a/sysutils/i7z/files/patch-helper_functions.c b/sysutils/i7z/files/patch-helper_functions.c index 3c9202bc1f7a..b05913ad5c03 100644 --- a/sysutils/i7z/files/patch-helper_functions.c +++ b/sysutils/i7z/files/patch-helper_functions.c @@ -1,5 +1,5 @@ --- ./helper_functions.c.orig 2012-09-11 08:15:54.000000000 +0200 -+++ ./helper_functions.c 2012-12-11 14:41:28.000000000 +0100 ++++ ./helper_functions.c 2015-04-05 20:52:59.850869370 +0200 @@ -30,6 +30,11 @@ #include <inttypes.h> #include <sys/types.h> @@ -27,7 +27,38 @@ int Get_Bits_Value(unsigned long val,int highbit, int lowbit){ unsigned long data = val; int bits = highbit - lowbit + 1; -@@ -234,7 +247,7 @@ +@@ -92,14 +105,22 @@ + static inline void cpuid (unsigned int info, unsigned int *eax, unsigned int *ebx, + unsigned int *ecx, unsigned int *edx) + { +- unsigned int _eax = info, _ebx, _ecx, _edx; +- asm volatile ("mov %%ebx, %%edi;" // save ebx (for PIC) +- "cpuid;" +- "mov %%ebx, %%esi;" // pass to caller +- "mov %%edi, %%ebx;" // restore ebx +- :"+a" (_eax), "=S" (_ebx), "=c" (_ecx), "=d" (_edx) +- : /* inputs: eax is handled above */ +- :"edi" /* clobbers: we hit edi directly */); ++ unsigned int _eax, _ebx, _ecx, _edx; ++ asm volatile ( ++#ifdef __i386__ ++ "pushl %%ebx\n" // save ebx (for PIC) ++#else // __x86_64__ ++ "pushq %%rbx\n" // save rbx (for PIC) ++#endif ++ "cpuid\n" ++ "mov %%ebx, %1\n" // pass to caller ++#ifdef __i386__ ++ "popl %%ebx\n" // restore ebx ++#else // __x86_64__ ++ "popq %%rbx\n" // restore rbx ++#endif ++ :"=a" (_eax), "=r" (_ebx), "=c" (_ecx), "=d" (_edx) ++ :"0" (info)); + if (eax) *eax = _eax; + if (ebx) *ebx = _ebx; + if (ecx) *ecx = _ecx; +@@ -234,7 +255,7 @@ int bits; *error_indx =0; @@ -36,7 +67,7 @@ fd = open (msr_file_name, O_RDONLY); if (fd < 0) { -@@ -255,11 +268,21 @@ +@@ -255,11 +276,21 @@ } } @@ -58,7 +89,7 @@ close (fd); -@@ -287,7 +310,7 @@ +@@ -287,7 +318,7 @@ int fd; char msr_file_name[64]; @@ -67,7 +98,7 @@ fd = open (msr_file_name, O_WRONLY); if (fd < 0) { -@@ -304,11 +327,21 @@ +@@ -304,11 +335,21 @@ } } @@ -89,7 +120,7 @@ close(fd); return(1); } -@@ -487,10 +520,10 @@ +@@ -487,10 +528,10 @@ void Test_Or_Make_MSR_DEVICE_FILES() { //test if the msr file exists @@ -103,7 +134,7 @@ { //a system mght have been set with msr allowable to be written //by a normal user so... -@@ -505,6 +538,7 @@ +@@ -505,6 +546,7 @@ printf ("i7z DEBUG: msr device files DONOT exist, trying out a makedev script\n"); if (geteuid () == 0) { @@ -111,7 +142,7 @@ //Try the Makedev script //sourced from MAKEDEV-cpuid-msr script in msr-tools system ("msr_major=202; \ -@@ -519,6 +553,9 @@ +@@ -519,6 +561,9 @@ "); printf ("i7z DEBUG: modprobbing for msr\n"); system ("modprobe msr"); @@ -121,7 +152,7 @@ } else { printf ("i7z DEBUG: You DONOT have root privileges, mknod to create device entries won't work out\n"); printf ("i7z DEBUG: A solution is to run this program as root\n"); -@@ -526,6 +563,7 @@ +@@ -526,6 +571,7 @@ } } } @@ -129,7 +160,7 @@ double cpufreq_info() { //CPUINFO is wrong for i7 but correct for the number of physical and logical cores present -@@ -543,6 +581,21 @@ +@@ -543,6 +589,21 @@ fclose (tmp_file); return atof(tmp_str); } @@ -151,7 +182,7 @@ int check_and_return_processor(char*strinfo) { -@@ -669,6 +722,7 @@ +@@ -669,6 +730,7 @@ printf("Socket-%d [num of cpus %d physical %d logical %d] %s\n",socket->socket_num,socket->max_cpu,socket->num_physical_cores,socket->num_logical_cores,socket_list); } @@ -159,7 +190,7 @@ void construct_CPU_Heirarchy_info(struct cpu_heirarchy_info* chi) { FILE *fp = fopen("/proc/cpuinfo","r"); -@@ -715,7 +769,51 @@ +@@ -715,7 +777,51 @@ chi->max_online_cpu = it_processor_num+1; fclose(fp); } diff --git a/sysutils/i7z/files/patch-i7z.c b/sysutils/i7z/files/patch-i7z.c index 27a2fa501c48..8f0f07371c8d 100644 --- a/sysutils/i7z/files/patch-i7z.c +++ b/sysutils/i7z/files/patch-i7z.c @@ -1,5 +1,68 @@ --- ./i7z.c.orig 2012-09-11 08:15:54.000000000 +0200 +++ ./i7z.c 2012-12-11 14:41:28.000000000 +0100 +@@ -184,11 +184,11 @@ + { + //below when just logging + if(prog_options.logging==1) { +- fprintf(fp_log_file_freq,"%d.%.9d\n",value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs ++ fprintf(fp_log_file_freq,"%jd.%.9ld\n",(intmax_t)value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs + } + //below when appending + if(prog_options.logging==2) { +- fprintf(fp_log_file_freq,"%d.%.9d\t",value->tv_sec,value->tv_nsec); ++ fprintf(fp_log_file_freq,"%jd.%.9ld\t",(intmax_t)value->tv_sec,value->tv_nsec); + } + } + +@@ -264,20 +264,20 @@ + if(socket_num==0){ + //below when just logging + if(prog_options.logging==1) +- fprintf(fp_log_file_freq_1,"%d.%.9d\n",value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs ++ fprintf(fp_log_file_freq_1,"%jd.%.9ld\n",(intmax_t)value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs + + //below when appending + if(prog_options.logging==2) +- fprintf(fp_log_file_freq_1,"%d.%.9d\t",value->tv_sec,value->tv_nsec); ++ fprintf(fp_log_file_freq_1,"%jd.%.9ld\t",(intmax_t)value->tv_sec,value->tv_nsec); + } + if(socket_num==1){ + //below when just logging + if(prog_options.logging==1) +- fprintf(fp_log_file_freq_2,"%d.%.9d\n",value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs ++ fprintf(fp_log_file_freq_2,"%jd.%.9ld\n",(intmax_t)value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs + + //below when appending + if(prog_options.logging==2) +- fprintf(fp_log_file_freq_2,"%d.%.9d\t",value->tv_sec,value->tv_nsec); ++ fprintf(fp_log_file_freq_2,"%jd.%.9ld\t",(intmax_t)value->tv_sec,value->tv_nsec); + } + } + +@@ -315,7 +315,7 @@ + { + //below when just logging + if(prog_options.logging != 0) { +- fprintf(fp_log_file_Cstates,"%d.%.9d",value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs ++ fprintf(fp_log_file_Cstates,"%jd.%.9ld",(intmax_t)value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs + } + } + +@@ -366,12 +366,12 @@ + if(socket_num==0){ + //below when just logging + if(prog_options.logging != 0) +- fprintf(fp_log_file_Cstates_1,"%d.%.9d",value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs ++ fprintf(fp_log_file_Cstates_1,"%jd.%.9ld",(intmax_t)value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs + } + if(socket_num==1){ + //below when just logging + if(prog_options.logging != 0) +- fprintf(fp_log_file_Cstates_2,"%d.%.9d",value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs ++ fprintf(fp_log_file_Cstates_2,"%jd.%.9ld",(intmax_t)value->tv_sec,value->tv_nsec); //newline, replace \n with \t to get everything separated with tabs + } + } + @@ -386,7 +386,11 @@ void modprobing_msr() |