Date: Sun, 25 Dec 2011 15:07:45 -0500 (EST) From: Steve Wills <swills@FreeBSD.org> To: FreeBSD-gnats-submit@FreeBSD.org Cc: gnome@FreeBSD.org Subject: [PATCH] devel/libgtop: fix build on 10-CURRENT Message-ID: <201112252007.pBPK7jX2093296@meatwad.mouf.net>
next in thread | raw e-mail | index | archive | help
>Submitter-Id: current-users >Originator: Steve Wills >Organization: >Confidential: no >Synopsis: [PATCH] devel/libgtop: fix build on 10-CURRENT >Severity: non-critical >Priority: low >Category: ports >Class: change-request >Release: FreeBSD 10.0-CURRENT amd64 >Environment: System: FreeBSD meatwad.mouf.net 10.0-CURRENT FreeBSD 10.0-CURRENT #8: Mon Dec 19 15:53:28 EST 2011 >Description: I experienced the same build failure with libgtop seen here: http://pointyhat.freebsd.org/errorlogs/i386-errorlogs/e.10.20111207031942/libgtop-2.28.3_2.log gmake[3]: Entering directory `/work/a/ports/devel/libgtop/work/libgtop-2.28.3/sysdeps/freebsd' ... gnome-libtool: compile: cc -DHAVE_CONFIG_H -I. -I../.. -I../.. -I../.. -I../../sysdeps/freebsd -I../../include -I/usr/local/include/glib-2.0 -I/usr/local/include -I/usr/local/include -DHAVE_NET_IF_VAR_H -Winline -Wall -std=gnu89 -Wchar-subscripts -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wcast-align -Wsign-compare -O2 -pipe -fno-strict-aliasing -MT open.lo -MD -MP -MF .deps/open.Tpo -c open.c -fPIC -DPIC -o .libs/open.o open.c: In function 'glibtop_open_s': open.c:47: error: '__FreeBSD_kernel_version' undeclared (first use in this function) open.c:47: error: (Each undeclared identifier is reported only once open.c:47: error: for each function it appears in.) gmake[3]: *** [open.lo] Error 1 The attached patch fixes it for me. The patch is mainly noise due to the file files/patch-sysdeps_freebsd_open.c not being updated I think, but the main change is that the check for __FreeBSD_kernel__ and usage of __FreeBSD_kernel_version was removed in favor of just using __FreeBSD_version all the time. I believe this is the correct thing to do, but I'm not 100% sure. Port maintainer (gnome@FreeBSD.org) is cc'd. Generated with FreeBSD Port Tools 0.99 >How-To-Repeat: >Fix: --- libgtop-2.28.3_2.patch begins here --- Index: files/patch-sysdeps_freebsd_open.c =================================================================== RCS file: /home/pcvs/ports/devel/libgtop/files/patch-sysdeps_freebsd_open.c,v retrieving revision 1.1 diff -u -u -r1.1 patch-sysdeps_freebsd_open.c --- files/patch-sysdeps_freebsd_open.c 10 Jan 2009 05:21:26 -0000 1.1 +++ files/patch-sysdeps_freebsd_open.c 25 Dec 2011 20:03:26 -0000 @@ -1,6 +1,6 @@ ---- sysdeps/freebsd/open.c.orig 2008-05-23 18:13:23.000000000 -0400 -+++ sysdeps/freebsd/open.c 2008-09-29 17:23:22.000000000 -0400 -@@ -20,76 +20,33 @@ +--- sysdeps/freebsd/open.c.orig 2011-12-25 11:29:32.897248000 +0000 ++++ sysdeps/freebsd/open.c 2011-12-25 11:38:05.000000000 +0000 +@@ -20,76 +20,27 @@ */ #include <config.h> @@ -23,16 +23,16 @@ - glibtop_error_r (NULL, "glibtop_init_p (server == NULL)"); - - /* Do the initialization, but only if not already initialized. */ -- -- if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) { -- glibtop_open_p (server, "glibtop", features, flags); +#include <glibtop/cpu.h> +#include <glibtop/error.h> -- for (init_fkt = _glibtop_init_hook_p; *init_fkt; init_fkt++) -- (*init_fkt) (server); +- if ((server->flags & _GLIBTOP_INIT_STATE_SYSDEPS) == 0) { +- glibtop_open_p (server, "glibtop", features, flags); +#include <glibtop_private.h> +- for (init_fkt = _glibtop_init_hook_p; *init_fkt; init_fkt++) +- (*init_fkt) (server); +- - server->flags |= _GLIBTOP_INIT_STATE_SYSDEPS; - } -} @@ -46,24 +46,24 @@ -#ifdef DEBUG - fprintf (stderr, "DEBUG (%d): glibtop_open_p ()\n", getpid ()); -#endif +- +- /* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */ + int ncpus; + size_t len; -- /* !!! WE ARE ROOT HERE - CHANGE WITH CAUTION !!! */ -+ len = sizeof (ncpus); -+ sysctlbyname ("hw.ncpu", &ncpus, &len, NULL, 0); -+ server->real_ncpu = ncpus - 1; -+ server->ncpu = MIN(GLIBTOP_NCPU - 1, server->real_ncpu); - - server->machine.uid = getuid (); - server->machine.euid = geteuid (); - server->machine.gid = getgid (); - server->machine.egid = getegid (); - #if defined(__FreeBSD_kernel__) - server->os_version_code = __FreeBSD_kernel_version; - #else +-#if defined(__FreeBSD_kernel__) +- server->os_version_code = __FreeBSD_kernel_version; +-#else ++ len = sizeof (ncpus); ++ sysctlbyname ("hw.ncpu", &ncpus, &len, NULL, 0); ++ server->real_ncpu = ncpus - 1; ++ server->ncpu = MIN(GLIBTOP_NCPU - 1, server->real_ncpu); server->os_version_code = __FreeBSD_version; - #endif +-#endif - /* Setup machine-specific data */ - server->machine.kd = kvm_open (NULL, NULL, NULL, O_RDONLY, "kvm_open"); - @@ -82,7 +82,7 @@ - - /* Our effective uid is now those of the user invoking the server, - * so we do no longer have any priviledges. */ - +- - /* NOTE: On FreeBSD, we do not need to be suid root, we just need to - * be sgid kmem. - * --- libgtop-2.28.3_2.patch ends here ---
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201112252007.pBPK7jX2093296>