Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

bug#11797: trunk does not build on NetBSD

24 views
Skip to first unread message

Herbert J. Skuhra

unread,
Jun 27, 2012, 5:44:18 AM6/27/12
to 11...@debbugs.gnu.org
Hi,

I get the following error when I run 'gmake bootstrap' on NetBSD-current:

sysdep.c:2528:16: error: 'CTL_KERN' undeclared (first use in this function)
sysdep.c:2528:16: note: each undeclared identifier is reported only
once for each function it appears in
sysdep.c:2528:26: error: 'KERN_PROC' undeclared (first use in this function)
sysdep.c:2528:37: error: 'KERN_PROC_PROC' undeclared (first use in
this function)
sysdep.c:2537:3: warning: implicit declaration of function 'sysctl'
sysdep.c:2548:18: error: invalid application of 'sizeof' to incomplete
type 'struct kinfo_proc'
sysdep.c:2548:7: warning: division by zero
sysdep.c:2554:7: error: invalid use of undefined type 'struct kinfo_proc'
sysdep.c:2554:25: error: dereferencing pointer to incomplete type
sysdep.c:2554:25: error: request for member 'ki_pid' in something not
a structure or union
sysdep.c:2554:7: error: invalid use of undefined type 'struct kinfo_proc'
sysdep.c:2554:25: error: dereferencing pointer to incomplete type
sysdep.c:2554:25: error: request for member 'ki_pid' in something not
a structure or union
sysdep.c:2554:25: warning: comparison between pointer and integer
sysdep.c:2554:7: error: invalid use of undefined type 'struct kinfo_proc'
sysdep.c:2554:25: error: dereferencing pointer to incomplete type
sysdep.c:2554:25: error: request for member 'ki_pid' in something not
a structure or union
sysdep.c:2554:25: warning: comparison between pointer and integer
sysdep.c:2554:7: error: invalid use of undefined type 'struct kinfo_proc'
sysdep.c:2554:25: error: dereferencing pointer to incomplete type
sysdep.c:2554:25: error: request for member 'ki_pid' in something not
a structure or union
sysdep.c:2554:7: error: incompatible type for argument 1 of 'make_float'
lisp.h:2744:20: note: expected 'double' but argument is of type 'int *'
sysdep.c:2554:7: error: invalid use of undefined type 'struct kinfo_proc'
sysdep.c:2554:25: error: dereferencing pointer to incomplete type
sysdep.c:2554:25: error: request for member 'ki_pid' in something not
a structure or union
sysdep.c:2554:25: warning: pointer/integer type mismatch in
conditional expression
sysdep.c:2554:7: warning: passing argument 1 of 'Fcons' makes integer
from pointer without a cast
lisp.h:2687:1: note: expected 'Lisp_Object' but argument is of type 'int *'
gmake[2]: *** [sysdep.o] Error 1
gmake[2]: Leaving directory `/home/herbert/source/emacs/trunk/src'
gmake[1]: *** [src] Error 2
gmake[1]: Leaving directory `/home/herbert/source/emacs/trunk'
gmake: *** [bootstrap] Error 2

% uname -rms
NetBSD 6.99.8 amd64
% bzr revno
108764
% ./autogen.sh
% CPPFLAGS='-I/usr/pkg/include' LDFLAGS='-L/usr/pkg/lib' ./configure
--prefix=/usr/local/emacs --with-x-toolkit=gtk3
% gmake bootstrap

Notes:

1. I have to modify the configure script so that it checks for -lpng15
instead of -lpng
2. I have to revert 108471 (see my notes to bug #11398)

The attached patch fixes the build.

--
Herbert
patch_src_sysdep_c.txt

Glenn Morris

unread,
Jun 27, 2012, 8:05:24 PM6/27/12
to Herbert J. Skuhra, 11...@debbugs.gnu.org
"Herbert J. Skuhra" wrote:

> 1. I have to modify the configure script so that it checks for -lpng15
> instead of -lpng

Not the main part of your report of course, but really?
There's no "libpng" on NetBSD, only "libpng15"?
Isn't that a PITA for compiling a bunch of software, not just Emacs?
You aren't just missing the equivalent of a "libpng-devel" package that
provides the unversioned .so?



Herbert J. Skuhra

unread,
Jun 28, 2012, 6:18:14 AM6/28/12
to Glenn Morris, 11...@debbugs.gnu.org
On Thu, Jun 28, 2012 at 2:05 AM, Glenn Morris <r...@gnu.org> wrote:
> "Herbert J. Skuhra" wrote:
>
>> 1. I have to modify the configure script so that it checks for -lpng15
>> instead of -lpng
>
> Not the main part of your report of course, but really?
> There's no "libpng" on NetBSD, only "libpng15"?

I've built png from pkgsrc and I have only:

/usr/pkg/lib/libpng15.la
/usr/pkg/lib/libpng15.a
/usr/pkg/lib/libpng15.so
/usr/pkg/lib/libpng15.so.15
/usr/pkg/lib/libpng15.so.15.11.0

> Isn't that a PITA for compiling a bunch of software, not just Emacs?

Yes, when the software does not use pkg-config or libpng-confg to
detect libpng.

> You aren't just missing the equivalent of a "libpng-devel" package that
> provides the unversioned .so?

pkgsrc has a workaround for software that does not use pkg-config or
libpng-config.

Excerpt from /usr/pkgsrc/graphics/png/buildlink3.mk:

# Some software directly tries to link against -lpng instead of
# using pkg-config or libpng-config to find the proper arguments
# instead of installing symlinks. Work around this with buildlink
# magic: packages outside pkgsrc will need to be converted to
# one of the proper methods or fail.
BUILDLINK_TRANSFORM+= l:png:png15



Glenn Morris

unread,
Jun 28, 2012, 1:29:07 PM6/28/12
to Herbert J. Skuhra, 11...@debbugs.gnu.org
"Herbert J. Skuhra" wrote:

> Yes, when the software does not use pkg-config or libpng-confg to
> detect libpng.

So in other words a configure script has to use pkg-config for
absolutely every library? Yay...



Paul Eggert

unread,
Jul 6, 2012, 10:35:09 PM7/6/12
to 11...@debbugs.gnu.org, Herbert J. Skuhra
I have installed a fix for this in the trunk, as bzr 108929.
This is related to a similar patch I recently installed,
for OpenBSD, in trunk bzr 108891. Should these be backported
to Emacs 24?



Han Boetes

unread,
Jul 7, 2012, 5:14:28 AM7/7/12
to 11...@debbugs.gnu.org, Paul Eggert
I noticed a similar problem on OpenBSD not building and offered Paul
Eggert an account on my machine so he could fix the issue. This is what
he changed. Since he used __OpenBSD__ I don't think it will work on
NetBSD but it's a sure step in the right direction.

Please consider reading:

http://www.openbsd.org/faq/ports/guide.html#PortsGeneric





~/nfs/Emacs/emacs% bzr diff -r-40.. src/sysdep.c
=== modified file 'src/sysdep.c'
--- src/sysdep.c 2012-07-05 18:35:48 +0000
+++ src/sysdep.c 2012-07-06 08:28:29 +0000
@@ -38,17 +38,17 @@
#include "sysselect.h"
#include "blockinput.h"

+#ifdef BSD_SYSTEM
+#include <sys/param.h>
+#include <sys/sysctl.h>
+#endif
+
#ifdef __FreeBSD__
-#include <sys/sysctl.h>
#include <sys/user.h>
#include <sys/resource.h>
#include <math.h>
#endif

-#ifdef DARWIN_OS
-#include <sys/sysctl.h>
-#endif
-
#ifdef WINDOWSNT
#define read sys_read
#define write sys_write
@@ -2520,7 +2520,7 @@
Lisp_Object
list_system_processes (void)
{
-#ifdef DARWIN_OS
+#if defined DARWIN_OS || defined __OpenBSD__
int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_ALL};
#else
int mib[] = {CTL_KERN, KERN_PROC, KERN_PROC_PROC};
@@ -2548,6 +2548,8 @@
{
#ifdef DARWIN_OS
proclist = Fcons (make_fixnum_or_float (procs[i].kp_proc.p_pid),
proclist);
+#elif defined __OpenBSD__
+ proclist = Fcons (make_fixnum_or_float (procs[i].p_pid), proclist);
#else
proclist = Fcons (make_fixnum_or_float (procs[i].ki_pid), proclist);
#endif




Paul Eggert

unread,
Jul 12, 2012, 9:27:39 PM7/12/12
to 11797...@debbugs.gnu.org
Since this is fixed in the trunk I am marking this
as 'done'. If there's a desire to backport this to
Emacs 24 that can be opened as a separate bug report.



0 new messages