Re: Port bulk with

2017-10-13 Thread Martin Pieuchot
On 05/10/17(Thu) 16:02, Christian Weisgerber wrote:
> Martin Pieuchot:
> 
> > > On amd64, two ports failed to build: devel/libdwarf and devel/valgrind.
> > 
> > Thanks, here's an updated diff that should fix those.
> 
> Nope, those two still fail.  Full logs attached.

I added yesterday the missing defines to .  While doing
so I figured that devel/libelf will pick  if it is present.  So
I'd like to bump it when I introduce this header.  This will make it
easier to deal with possible fallout.

Full diff below, ok?

Index: src/include/Makefile
===
RCS file: /cvs/src/include/Makefile,v
retrieving revision 1.220
diff -u -p -r1.220 Makefile
--- src/include/Makefile6 Oct 2017 19:58:37 -   1.220
+++ src/include/Makefile9 Oct 2017 07:54:16 -
@@ -10,9 +10,10 @@
 .include 
 
 FILES= a.out.h ar.h asr.h assert.h bitstring.h blf.h bsd_auth.h \
-   complex.h cpio.h ctype.h curses.h db.h dirent.h disktab.h \
-   dlfcn.h elf_abi.h err.h errno.h fenv.h float.h fnmatch.h fstab.h fts.h \
-   ftw.h getopt.h glob.h grp.h icdb.h ieeefp.h ifaddrs.h inttypes.h \
+   complex.h cpio.h ctype.h curses.h db.h dirent.h disktab.h dlfcn.h \
+   elf.h elf_abi.h err.h errno.h \
+   fenv.h float.h fnmatch.h fstab.h fts.h ftw.h \
+   getopt.h glob.h grp.h icdb.h ieeefp.h ifaddrs.h inttypes.h \
iso646.h kvm.h langinfo.h libgen.h limits.h link.h link_elf.h \
locale.h login_cap.h math.h md5.h memory.h ndbm.h netdb.h netgroup.h \
nlist.h nl_types.h paths.h poll.h pwd.h ranlib.h readpassphrase.h \
Index: src/include/elf.h
===
RCS file: src/include/elf.h
diff -N src/include/elf.h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ src/include/elf.h   9 Aug 2017 15:49:08 -
@@ -0,0 +1,12 @@
+/* $OpenBSD$   */
+
+/*
+ * Public domain.
+ */
+
+#ifndef _ELF_H_
+#define _ELF_H_
+
+#include 
+
+#endif /* _ELF_H_ */
Index: ports/devel/libelf/Makefile
===
RCS file: /cvs/ports/devel/libelf/Makefile,v
retrieving revision 1.12
diff -u -p -r1.12 Makefile
--- ports/devel/libelf/Makefile 15 Aug 2015 08:03:20 -  1.12
+++ ports/devel/libelf/Makefile 11 Oct 2017 12:07:10 -
@@ -6,7 +6,7 @@ PORTROACH_COMMENT=0.8.14 is actually 0.8
 COMMENT=   read, modify, create ELF files on any arch
 
 DISTNAME=  libelf-0.8.13
-REVISION=  3
+REVISION=  4
 MAINTAINER=Jasper Lievisse Adriaanse 
 
 SHARED_LIBS=   elf 1.1



Re: Port bulk with

2017-10-05 Thread Christian Weisgerber
Martin Pieuchot:

> > On amd64, two ports failed to build: devel/libdwarf and devel/valgrind.
> 
> Thanks, here's an updated diff that should fix those.

Nope, those two still fail.  Full logs attached.

===> libdwarf
c++ -I/usr/local/include/libelf -I/usr/local/include 
-I/usr/local/include/libelf -I/usr/local/include  -I. -I. -I../libdwarf 
-I./../libdwarf   -c dwarfgen.cc
dwarfgen.cc:234:25: error: use of undeclared identifier 'SHF_STRINGS'
strshdr->sh_flags = SHF_STRINGS;
^
1 error generated.

===> valgrind
m_coredump/coredump-elf.c:764:32: error: use of undeclared identifier 
'NT_PRPSINFO'
   add_note(¬elist, "CORE", NT_PRPSINFO, &prpsinfo, sizeof(prpsinfo));
   ^
1 error generated.

-- 
Christian "naddy" Weisgerber  na...@mips.inka.de


libdwarf.log.xz
Description: application/xz


valgrind.log.xz
Description: application/xz


Re: Port bulk with

2017-10-03 Thread Martin Pieuchot
On 12/09/17(Tue) 16:23, Christian Weisgerber wrote:
> Martin Pieuchot:
> 
> > > So here's a first step, introducing /usr/include/elf.h.  Could some of
> > > you run a bulk with it and report the possible breakages?
> > 
> > Now that the offending function declaration has been remove from libc
> > libelf builds as before.
> > 
> > Could you guys tell us if there's any other fallout from this diff?
> 
> On amd64, two ports failed to build: devel/libdwarf and devel/valgrind.

Thanks, here's an updated diff that should fix those.

Index: sys/sys/exec_elf.h
===
RCS file: /cvs/src/sys/sys/exec_elf.h,v
retrieving revision 1.75
diff -u -p -r1.75 exec_elf.h
--- sys/sys/exec_elf.h  5 Sep 2017 06:35:19 -   1.75
+++ sys/sys/exec_elf.h  3 Oct 2017 13:54:57 -
@@ -187,12 +187,14 @@ typedef struct {
 #define EM_PARISC  15  /* HPPA */
 #define EM_SPARC32PLUS 18  /* Enhanced instruction set SPARC */
 #define EM_PPC 20  /* PowerPC */
+#define EM_PPC64   21  /* PowerPC 64 */
 #define EM_ARM 40  /* Advanced RISC Machines ARM */
 #define EM_ALPHA   41  /* DEC ALPHA */
-#defineEM_SH   42  /* Hitachi/Renesas Super-H */
+#define EM_SH  42  /* Hitachi/Renesas Super-H */
 #define EM_SPARCV9 43  /* SPARC version 9 */
 #define EM_IA_64   50  /* Intel IA-64 Processor */
 #define EM_AMD64   62  /* AMD64 architecture */
+#define EM_X86_64  EM_AMD64
 #define EM_VAX 75  /* DEC VAX */
 #define EM_AARCH64 183 /* ARM 64-bit architecture (AArch64) */
 
Index: include/Makefile
===
RCS file: /cvs/src/include/Makefile,v
retrieving revision 1.219
diff -u -p -r1.219 Makefile
--- include/Makefile17 Apr 2017 15:53:21 -  1.219
+++ include/Makefile9 Aug 2017 15:46:46 -
@@ -10,9 +10,10 @@
 .include 
 
 FILES= a.out.h ar.h asr.h assert.h bitstring.h blf.h bsd_auth.h \
-   complex.h cpio.h ctype.h curses.h db.h dirent.h disktab.h \
-   dlfcn.h elf_abi.h err.h errno.h fenv.h float.h fnmatch.h fstab.h fts.h \
-   ftw.h getopt.h glob.h grp.h icdb.h ieeefp.h ifaddrs.h inttypes.h \
+   complex.h cpio.h ctype.h curses.h db.h dirent.h disktab.h dlfcn.h \
+   elf.h elf_abi.h err.h errno.h \
+   fenv.h float.h fnmatch.h fstab.h fts.h ftw.h \
+   getopt.h glob.h grp.h icdb.h ieeefp.h ifaddrs.h inttypes.h \
iso646.h kvm.h langinfo.h libgen.h limits.h link.h link_elf.h \
locale.h login_cap.h math.h md5.h memory.h ndbm.h netdb.h netgroup.h \
nlist.h nl_types.h paths.h poll.h pwd.h ranlib.h readpassphrase.h \
Index: include/elf.h
===
RCS file: include/elf.h
diff -N include/elf.h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ include/elf.h   9 Aug 2017 15:49:08 -
@@ -0,0 +1,12 @@
+/* $OpenBSD$   */
+
+/*
+ * Public domain.
+ */
+
+#ifndef _ELF_H_
+#define _ELF_H_
+
+#include 
+
+#endif /* _ELF_H_ */



Re: Port bulk with

2017-09-16 Thread Christian Weisgerber
Karel Gardas:

> I think it should be just enough if you remove this problematic hunk:

Building a release fails.
I should not be the one discovering this when you are asking for a ports
build.

cc  -o rdsetroot  /usr/src/distrib/amd64/ramdisk_cd/../../common/elfrdsetroot.c 
/usr/src/distrib/amd64/ramdisk_cd/../../common/elf32.c  
/usr/src/distrib/amd64/ramdisk_cd/../../common/elf64.c  

In file included from 
/usr/src/distrib/amd64/ramdisk_cd/../../common/elfrdsetroot.c:48:   
  
/usr/src/distrib/amd64/ramdisk_cd/../../common/elfrdsetroot.h:2:35: warning:
  declaration of 'struct elfhdr' will not be visible outside of this
  function [-Wvisibility]   
void (*locate_image)(int, struct elfhdr *,  char *, long *, long *, 
 ^  
/usr/src/distrib/amd64/ramdisk_cd/../../common/elfrdsetroot.c:124:28: error:
  invalid application of 'sizeof' to an incomplete type 'struct elfhdr' 
n = read(fd, &head, sizeof(head));  
  ^~

-- 
Christian "naddy" Weisgerber  na...@mips.inka.de



Re: Port bulk with

2017-09-16 Thread Karel Gardas
On Sat, Sep 16, 2017 at 9:23 PM, Christian Weisgerber
 wrote:
> Karel Gardas:
>
>> I've update my elf.h transition patch and posted on tech@ here
>> https://marc.info/?l=openbsd-tech&m=150551268819592&w=2 -- I'm running
>
> This patch doesn't apply.
> There is no file src/lib/libc/gen/elf_hash.c in -CURRENT.

Thanks for the heads up. Looks like cvs bug or my misunderstanding how
diff is working. The history of this is that I editted elf_hash.c
which was later removed by cvs update. Still when I invoke cvs -q diff
-u  -- it still diffs also removed elf_hash.c. I've checked this file
is neither in my tree...

I think it should be just enough if you remove this problematic hunk:

Index: lib/libc/gen/elf_hash.c
===
RCS file: /cvs/src/lib/libc/gen/Attic/elf_hash.c,v
retrieving revision 1.9
diff -u -p -u -r1.9 elf_hash.c
--- lib/libc/gen/elf_hash.c 16 Jan 2015 16:48:51 -  1.9
+++ lib/libc/gen/elf_hash.c 16 Sep 2017 19:32:12 -
@@ -37,7 +37,7 @@
 #include 
 #include 

-#include 
+#include 

 /*
  * Standard ELF ABI hash function.



Re: Port bulk with

2017-09-16 Thread Christian Weisgerber
Karel Gardas:

> I've update my elf.h transition patch and posted on tech@ here
> https://marc.info/?l=openbsd-tech&m=150551268819592&w=2 -- I'm running

This patch doesn't apply.
There is no file src/lib/libc/gen/elf_hash.c in -CURRENT.

-- 
Christian "naddy" Weisgerber  na...@mips.inka.de



Re: Port bulk with

2017-09-16 Thread Karel Gardas
Hi,

I've update my elf.h transition patch and posted on tech@ here
https://marc.info/?l=openbsd-tech&m=150551268819592&w=2 -- I'm running
ports build on my testing machine, but it's not that fast and I'm
neither experience ports builder so I would welcome if anybody can
give it a try on somewhat more reference ports build setup. Please
note that after patch/build you would need to cp /usr/include/elf.h
/usr/include/elf_abi.h in order to make those ports assuming elf_abi.h
presence on OpenBSD to build correctly (E.g. ghc). The point here is
to check if content of included /usr/include/sys/exec_elf.h is correct
enough for ports to build.

This patch version already solves devel/libdwarf and devel/valgrind
issues seen by Christian.

My current dpb progress looks:
I= B=642 Q=3350 T=1942 F=0 !=100
E=mail/mozilla-thunderbird,,-main www/seamonkey,,-main
games/ioquake3:ioquake3-2017.08.03-59b1262b.tar.gz
fonts/fira-fonts:fira-fonts-20170227-a6069274.tar.gz
games/doomdata/doom1 games/doomdata/
doom2

where thunderbird and seamonkey fails strangely on python related
issue which does not seems to be related to elf.h change. See below.
This is also the reason I do not trust that much my ports build
abilities and would welcome if someone more experience with ports
building would give the patch a try.

Thanks!
Karel



>>> Running configure in www/seamonkey,,-main at 1505546419
===> www/seamonkey,,-main
===>  Configuring for seamonkey-2.48
Creating Python environment
New python executable in
/usr/local/ports/pobj/seamonkey-2.48/build-amd64/_virtualenv/bin/python2.7
Also creating executable in
/usr/local/ports/pobj/seamonkey-2.48/build-amd64/_virtualenv/bin/python
Installing setuptools, pip, wheel...done.
platform openbsd6 is not supported

Error processing command. Ignoring because optional.
(optional:setup.py:python/psutil:build_ext:--inplace)
Reexecuting in the virtualenv
Traceback (most recent call last):
  File "/usr/ports/pobj/seamonkey-2.48/seamonkey-2.48/configure.py",
line 32, in 
sys.exit(main(sys.argv))
  File "/usr/ports/pobj/seamonkey-2.48/seamonkey-2.48/configure.py",
line 24, in main
sandbox.run(os.path.join(os.path.dirname(__file__), 'moz.configure'))
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/configure/__init__.py",
line 231, in run
self.include_file(path)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/configure/__init__.py",
line 222, in include_file
exec_(code, self)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/util.py",
line 59, in exec_
exec(object, globals, locals)
  File "/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/moz.configure",
line 7, in 
include('mozilla/moz.configure')
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/configure/__init__.py",
line 477, in include_impl
self.include_file(what)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/configure/__init__.py",
line 222, in include_file
exec_(code, self)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/util.py",
line 59, in exec_
exec(object, globals, locals)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/moz.configure",
line 7, in 
include('build/moz.configure/init.configure')
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/configure/__init__.py",
line 477, in include_impl
self.include_file(what)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/configure/__init__.py",
line 222, in include_file
exec_(code, self)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/util.py",
line 59, in exec_
exec(object, globals, locals)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/build/moz.configure/init.configure",
line 787, in 
include(include_project_configure)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/configure/__init__.py",
line 477, in include_impl
self.include_file(what)
  File 
"/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48/mozilla/python/mozbuild/mozbuild/configure/__init__.py",
line 209, in include_file
'of `%s`' % (path, mozpath.dirname(self._paths[0])))
mozbuild.configure.ConfigureError: Cannot include
`/usr/ports/pobj/seamonkey-2.48/seamonkey-2.48/suite/moz.configure`
because it is not in a subdirectory of
`/usr/local/ports/pobj/seamonkey-2.48/seamonkey-2.48`
*** Error 1 in /usr/ports/www/seamonkey
(/usr/ports/infrastructure/mk/bsd.port.mk:2694
'/usr/ports/pobj/seamonkey-2.48/build-amd64/.configure_done')
*** Error 1 in /usr/ports/www/seamonkey
(/usr/ports/infrastructure/mk/bsd.port.mk:2420 'configure')
===> Exiting www/seamonkey,,-main with an error
*** Error 

Re: Port bulk with

2017-09-13 Thread Karel Gardas
My elf.h patch solves devel/libdwarf compilation issue, but
devel/valgrind still fails due to:

m_coredump/coredump-elf.c:764:32: error: use of undeclared identifier
'NT_PRPSINFO'
   add_note(¬elist, "CORE", NT_PRPSINFO, &prpsinfo, sizeof(prpsinfo));

the problem is NT_PRPSINFO is not standardized in elf spec so the
question is if I shall add this to sys/exec_elf.h or we can also
define it inside the coregrind/m_coredump/
coredump-elf.c which already contains definition for NT_PRXFPREG which
is from the same family of "common" elf defines for core files...

What's the preference in such a case?

On Tue, Sep 12, 2017 at 4:23 PM, Christian Weisgerber
 wrote:
> Martin Pieuchot:
>
>> > So here's a first step, introducing /usr/include/elf.h.  Could some of
>> > you run a bulk with it and report the possible breakages?
>>
>> Now that the offending function declaration has been remove from libc
>> libelf builds as before.
>>
>> Could you guys tell us if there's any other fallout from this diff?
>
> On amd64, two ports failed to build: devel/libdwarf and devel/valgrind.
>
> ===> devel/libdwarf
> print_reloc.c:150:10: error: use of undeclared identifier 'EM_PPC64'
> case EM_PPC64:
>  ^
>
> ===> devel/valgrind
> m_coredump/coredump-elf.c:105:22: error: use of undeclared identifier
> 'EM_X86_64'
>ehdr->e_machine = VG_ELF_MACHINE;
>  ^
> ./pub_core_machine.h:51:31: note: expanded from macro 'VG_ELF_MACHINE'
> #  define VG_ELF_MACHINE  EM_X86_64
>   ^
>
> --
> Christian "naddy" Weisgerber  na...@mips.inka.de



Re: Port bulk with

2017-09-12 Thread Karel Gardas
Both those issues should be solved by my bigger elf.h patch. E.g. it
defines both EM_PPC64 and EM_X86_64. I'll merge latest git and
resubmit for review again.

On Tue, Sep 12, 2017 at 4:23 PM, Christian Weisgerber
 wrote:
> Martin Pieuchot:
>
>> > So here's a first step, introducing /usr/include/elf.h.  Could some of
>> > you run a bulk with it and report the possible breakages?
>>
>> Now that the offending function declaration has been remove from libc
>> libelf builds as before.
>>
>> Could you guys tell us if there's any other fallout from this diff?
>
> On amd64, two ports failed to build: devel/libdwarf and devel/valgrind.
>
> ===> devel/libdwarf
> print_reloc.c:150:10: error: use of undeclared identifier 'EM_PPC64'
> case EM_PPC64:
>  ^
>
> ===> devel/valgrind
> m_coredump/coredump-elf.c:105:22: error: use of undeclared identifier
> 'EM_X86_64'
>ehdr->e_machine = VG_ELF_MACHINE;
>  ^
> ./pub_core_machine.h:51:31: note: expanded from macro 'VG_ELF_MACHINE'
> #  define VG_ELF_MACHINE  EM_X86_64
>   ^
>
> --
> Christian "naddy" Weisgerber  na...@mips.inka.de



Re: Port bulk with

2017-09-12 Thread Christian Weisgerber
Martin Pieuchot:

> > So here's a first step, introducing /usr/include/elf.h.  Could some of
> > you run a bulk with it and report the possible breakages?
> 
> Now that the offending function declaration has been remove from libc
> libelf builds as before.
> 
> Could you guys tell us if there's any other fallout from this diff?

On amd64, two ports failed to build: devel/libdwarf and devel/valgrind.

===> devel/libdwarf
print_reloc.c:150:10: error: use of undeclared identifier 'EM_PPC64'
case EM_PPC64:
 ^

===> devel/valgrind
m_coredump/coredump-elf.c:105:22: error: use of undeclared identifier
'EM_X86_64'
   ehdr->e_machine = VG_ELF_MACHINE;
 ^
./pub_core_machine.h:51:31: note: expanded from macro 'VG_ELF_MACHINE'
#  define VG_ELF_MACHINE  EM_X86_64
  ^

-- 
Christian "naddy" Weisgerber  na...@mips.inka.de



Re: Port bulk with

2017-09-11 Thread Martin Pieuchot
On 09/08/17(Wed) 11:58, Martin Pieuchot wrote:
> As discussed recently on tech@ with Karel, some ports would benefit
> from having a  header.  This header is the Solaris version of
> our  and has been adopted by FreeBSD.
> 
> I'd like to migrate our base system from  to .  This
> would make our base tools dealing with ELF more portable.
> 
> So here's a first step, introducing /usr/include/elf.h.  Could some of
> you run a bulk with it and report the possible breakages?

Now that the offending function declaration has been remove from libc
libelf builds as before.

Could you guys tell us if there's any other fallout from this diff?

Index: Makefile
===
RCS file: /cvs/src/include/Makefile,v
retrieving revision 1.219
diff -u -p -r1.219 Makefile
--- Makefile17 Apr 2017 15:53:21 -  1.219
+++ Makefile9 Aug 2017 15:46:46 -
@@ -10,9 +10,10 @@
 .include 
 
 FILES= a.out.h ar.h asr.h assert.h bitstring.h blf.h bsd_auth.h \
-   complex.h cpio.h ctype.h curses.h db.h dirent.h disktab.h \
-   dlfcn.h elf_abi.h err.h errno.h fenv.h float.h fnmatch.h fstab.h fts.h \
-   ftw.h getopt.h glob.h grp.h icdb.h ieeefp.h ifaddrs.h inttypes.h \
+   complex.h cpio.h ctype.h curses.h db.h dirent.h disktab.h dlfcn.h \
+   elf.h elf_abi.h err.h errno.h \
+   fenv.h float.h fnmatch.h fstab.h fts.h ftw.h \
+   getopt.h glob.h grp.h icdb.h ieeefp.h ifaddrs.h inttypes.h \
iso646.h kvm.h langinfo.h libgen.h limits.h link.h link_elf.h \
locale.h login_cap.h math.h md5.h memory.h ndbm.h netdb.h netgroup.h \
nlist.h nl_types.h paths.h poll.h pwd.h ranlib.h readpassphrase.h \
Index: elf.h
===
RCS file: elf.h
diff -N elf.h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ elf.h   9 Aug 2017 15:49:08 -
@@ -0,0 +1,12 @@
+/* $OpenBSD$   */
+
+/*
+ * Public domain.
+ */
+
+#ifndef _ELF_H_
+#define _ELF_H_
+
+#include 
+
+#endif /* _ELF_H_ */



Re: Port bulk with

2017-08-10 Thread Karel Gardas
On Thu, Aug 10, 2017 at 9:45 PM, Karel Gardas  wrote:
> I updated my current to today snapshot and still with original full
> version of elf.h patch libelf builds fine -- see below. By quick
> comparison of configure outputs in Christian's and mine build it looks
> like he gets:
>
> checking if cc can compile elf.h... yes
>
> while I get:
>
> checking if cc can compile elf.h... no
>
> which is probably the reason (or one of) behind the failure for you
> and not failure for me...

config.log is clear about that:

configure:1231: checking if cc can compile elf.h
configure:1248: cc -c -O2 -pipe  conftest.c 1>&5
In file included from configure:1239:
In file included from /usr/include/elf.h:31:
/usr/include/sys/exec_elf.h:53:9: error: unknown type name
'__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t  Elf32_Addr; /* Unsigned program address */
^
note: '__uint128_t' declared here
/usr/include/sys/exec_elf.h:54:9: error: unknown type name
'__uint32_t'; did you mean '__uint128_t'?
typedef __uint32_t  Elf32_Off;  /* Unsigned file offset */
^
note: '__uint128_t' declared here
/usr/include/sys/exec_elf.h:55:9: error: unknown type name
'__uint16_t'; did you mean '__uint128_t'?
typedef __uint16_t  Elf32_Half; /* Unsigned medium integer */
^
[...]

probably the culprit here is my removal of  include from
sys/exec_elf.h which is presented in full patch version while missing
from current OpenBSD.



Re: Port bulk with

2017-08-10 Thread Karel Gardas
I updated my current to today snapshot and still with original full
version of elf.h patch libelf builds fine -- see below. By quick
comparison of configure outputs in Christian's and mine build it looks
like he gets:

checking if cc can compile elf.h... yes

while I get:

checking if cc can compile elf.h... no

which is probably the reason (or one of) behind the failure for you
and not failure for me...

$ doas make
===> libelf-0.8.13p3 depends on: metaauto-* -> metaauto-1.0p1
===> libelf-0.8.13p3 depends on: autoconf-2.13 -> autoconf-2.13p4
===>  Checking files for libelf-0.8.13p3
`/usr/ports/distfiles/libelf-0.8.13.tar.gz' is up to date.
>> (SHA256) libelf-0.8.13.tar.gz: OK
===>  Extracting for libelf-0.8.13p3
===>  Patching for libelf-0.8.13p3
===>   Applying OpenBSD patch patch-aclocal_m4
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--
|$OpenBSD: patch-aclocal_m4,v 1.4 2012/05/19 08:24:50 sthen Exp $
|--- aclocal.m4.origFri May 23 04:17:56 2008
|+++ aclocal.m4 Fri May 18 22:53:37 2012
--
Patching file aclocal.m4 using Plan A...
Hunk #1 succeeded at 288.
done
===>  Compiler link: cc -> /usr/bin/cc
===>  Compiler link: c++ -> /usr/bin/c++
Running autoconf-2.13 in /usr/ports/pobj/libelf-0.8.13/libelf-0.8.13
Running autoheader-2.13 in /usr/ports/pobj/libelf-0.8.13/libelf-0.8.13
===>  Configuring for libelf-0.8.13p3
Using /usr/ports/pobj/libelf-0.8.13/config.site (generated)
loading site script /usr/ports/pobj/libelf-0.8.13/config.site
creating cache ./config.cache
checking whether make sets ${MAKE}... (cached) yes
checking for gcc... cc
checking whether the C compiler (cc -O2 -pipe ) works... yes
checking whether the C compiler (cc -O2 -pipe ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether cc accepts -g... (cached) yes
checking how to run the C preprocessor... cc -E
checking for a BSD compatible install...
/usr/ports/pobj/libelf-0.8.13/bin/install -c
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for ANSI C header files... (cached) yes
checking for unistd.h... (cached) yes
checking for stdint.h... (cached) yes
checking for fcntl.h... (cached) yes
checking for elf.h... yes
checking for sys/elf.h... no
checking for link.h... yes
checking for sys/link.h... no
checking if cc can compile elf.h... no
checking for ar.h... yes
checking for libelf.h... no
checking for nlist.h... (cached) yes
checking for gelf.h... no
checking whether to install ,  and ... no
checking for working const... (cached) yes
checking for off_t... (cached) yes
checking for size_t... (cached) yes
checking size of short... (cached) 2
checking size of int... 4
checking size of long... 8
checking size of long long... (cached) 8
checking size of __int64... 0
checking for 64-bit integer... long
checking for 32-bit integer... int
checking for 16-bit integer... short
checking for unistd.h... (cached) yes
checking for getpagesize... (cached) yes
checking for working mmap... (cached) yes
checking for ftruncate... (cached) yes
checking for memcmp... (cached) yes
checking for memcpy... (cached) yes
checking for memmove... (cached) yes
checking for memset... (cached) yes
checking whether overlapping arrays are copied correctly... yes
checking the coffee machine... empty - operator may not work as expected
checking whether 64-bit ELF support is sufficient... yes
checking whether to include 64-bit support... yes
checking whether versioning support is sufficient... yes
checking whether to include versioning support... yes
checking whether NLS is requested... no
checking for gettext in -lintl... no
checking host system type... x86_64-unknown-openbsd6.1
checking whether to build a shared library... yes
checking whether GNU naming conventions are requested... no
checking for ld... /usr/bin/ld
updating cache ./config.cache
creating ./config.status
creating Makefile
creating lib/Makefile
creating po/Makefile
creating libelf.pc
creating config.h
creating lib/sys_elf.h
===>  Building for libelf-0.8.13p3
making all in lib
if test -n "-fPIC -DPIC"; then  cc -c -DHAVE_CONFIG_H -I.. -I. -I.
-O2 -pipe  -fPIC -DPIC begin.c && mv -f begin.o begin.os;  else true;
fi
begin.c:110:20: warning: comparison of unsigned expression < 0 is
always false [-Wtautological-compare]
if (arf->e_off < 0 || arf->e_off > arf->e_size) {
~~ ^ ~
begin.c:142:14: warning: comparison of unsigned expression < 0 is
always false [-Wtautological-compare]
if (tmp < 0 || tmp >= arf->e_strlen) {
~~~ ^ ~
2 warnings generated.
cc -c -DHAVE_CONFIG_H -I.. -I. -I.  -O2 -pipe  begin.c
begin.c:110:20: warning: comparison of unsigned expression < 0 is
always false [-Wtautological-compare]
if (arf->e_off < 0 || arf->e_off > arf->e_size) {
~~ ^ ~
begin.c:142:14: warning: comparison of unsigned expression < 0 is
always false [-Wtautological-compare]
if (tmp < 0 || tmp >= arf->e

Re: Port bulk with

2017-08-10 Thread Stuart Henderson
On 2017/08/10 20:27, Karel Gardas wrote:
> On Thu, Aug 10, 2017 at 4:46 PM, Christian Weisgerber
>  wrote:
> > On 2017-08-09, Martin Pieuchot  wrote:
> >
> >> So here's a first step, introducing /usr/include/elf.h.  Could some of
> >> you run a bulk with it and report the possible breakages?
> >
> > This breaks devel/libelf, which indirectly takes out about a quarter
> > of the tree.
> 
> Interesting. It does not fail here. But I do have around 14 days old
> current and full version of the patch applied:
> https://www.mail-archive.com/tech@openbsd.org/msg40551.html
> 
> Will try to update and see if there is issue with full version. Thanks
> for testing!
> Karel
> 

Confirmed here on -current i386 too. Conflicting definition of elf_hash()
in libelf's libelf.h.



Re: Port bulk with

2017-08-10 Thread Karel Gardas
On Thu, Aug 10, 2017 at 4:46 PM, Christian Weisgerber
 wrote:
> On 2017-08-09, Martin Pieuchot  wrote:
>
>> So here's a first step, introducing /usr/include/elf.h.  Could some of
>> you run a bulk with it and report the possible breakages?
>
> This breaks devel/libelf, which indirectly takes out about a quarter
> of the tree.

Interesting. It does not fail here. But I do have around 14 days old
current and full version of the patch applied:
https://www.mail-archive.com/tech@openbsd.org/msg40551.html

Will try to update and see if there is issue with full version. Thanks
for testing!
Karel



Re: Port bulk with

2017-08-10 Thread Christian Weisgerber
On 2017-08-09, Martin Pieuchot  wrote:

> So here's a first step, introducing /usr/include/elf.h.  Could some of
> you run a bulk with it and report the possible breakages?

This breaks devel/libelf, which indirectly takes out about a quarter
of the tree.


>>> Building on amd64-3 under devel/libelf
 BDEPENDS = [devel/metaauto;devel/autoconf/2.13]
 DIST = [devel/libelf:libelf-0.8.13.tar.gz]
 FULLPKGNAME = libelf-0.8.13p3
(Junk lock obtained for amd64-3 at 1502321695)
>>> Running depends in devel/libelf at 1502321695
/usr/sbin/pkg_add -aI -Dunsigned -Drepair autoconf-2.13p4 metaauto-1.0p1
was: /usr/sbin/pkg_add -aI -Dunsigned -Drepair autoconf-2.13p4 metaauto-1.0p1
/usr/sbin/pkg_add -aI -Dunsigned -Drepair autoconf-2.13p4 metaauto-1.0p1
>>> Running show-prepare-results in devel/libelf at 1502321695
===> devel/libelf
===> libelf-0.8.13p3 depends on: metaauto-* -> metaauto-1.0p1
===> libelf-0.8.13p3 depends on: autoconf-2.13 -> autoconf-2.13p4
autoconf-2.13p4
metaauto-1.0p1
(Junk lock released for amd64-3 at 1502321696)
distfiles size=148529
>>> Running build in devel/libelf at 1502321696
===> devel/libelf
===>  Checking files for libelf-0.8.13p3
`/usr/ports/distfiles/libelf-0.8.13.tar.gz' is up to date.
>> (SHA256) libelf-0.8.13.tar.gz: OK
===>  Extracting for libelf-0.8.13p3
===>  Patching for libelf-0.8.13p3
===>   Applying OpenBSD patch patch-aclocal_m4
Hmm...  Looks like a unified diff to me...
The text leading up to this was:
--
|$OpenBSD: patch-aclocal_m4,v 1.4 2012/05/19 08:24:50 sthen Exp $
|--- aclocal.m4.origFri May 23 04:17:56 2008
|+++ aclocal.m4 Fri May 18 22:53:37 2012
--
Patching file aclocal.m4 using Plan A...
Hunk #1 succeeded at 288.
done
===>  Compiler link: clang -> /usr/bin/clang
===>  Compiler link: clang++ -> /usr/bin/clang++
===>  Compiler link: cc -> /usr/bin/cc
===>  Compiler link: c++ -> /usr/bin/c++
Running autoconf-2.13 in /usr/obj/ports/libelf-0.8.13/libelf-0.8.13
Running autoheader-2.13 in /usr/obj/ports/libelf-0.8.13/libelf-0.8.13
===>  Configuring for libelf-0.8.13p3
Using /usr/obj/ports/libelf-0.8.13/config.site (generated)
loading site script /usr/obj/ports/libelf-0.8.13/config.site
creating cache ./config.cache
checking whether make sets ${MAKE}... (cached) yes
checking for gcc... cc
checking whether the C compiler (cc -O2 -pipe ) works... yes
checking whether the C compiler (cc -O2 -pipe ) is a cross-compiler... no
checking whether we are using GNU C... (cached) yes
checking whether cc accepts -g... (cached) yes
checking how to run the C preprocessor... cc -E
checking for a BSD compatible install... 
/usr/obj/ports/libelf-0.8.13/bin/install -c 
checking for ranlib... ranlib
checking whether ln -s works... yes
checking for ANSI C header files... (cached) yes
checking for unistd.h... (cached) yes
checking for stdint.h... (cached) yes
checking for fcntl.h... (cached) yes
checking for elf.h... yes
checking for sys/elf.h... no
checking for link.h... yes
checking for sys/link.h... no
checking if cc can compile elf.h... yes
checking for ar.h... yes
checking for libelf.h... no
checking for nlist.h... (cached) yes
checking for gelf.h... no
checking whether to install ,  and ... no
checking for working const... (cached) yes
checking for off_t... (cached) yes
checking for size_t... (cached) yes
checking size of short... (cached) 2
checking size of int... 4
checking size of long... 8
checking size of long long... (cached) 8
checking size of __int64... 0
checking for struct Elf32_Dyn... yes
checking for struct nlist in elf.h... no
checking for struct Elf64_Ehdr... yes
checking for Elf64_Addr... yes
checking for struct Elf64_Rel... yes
checking for Elf32_Verdef... no
checking for Elf64_Verdef... no
checking for SHT_SUNW_verdef... no
checking for SHT_GNU_verdef... no
checking for 64-bit integer... long
checking for 32-bit integer... int
checking for 16-bit integer... short
checking for unistd.h... (cached) yes
checking for getpagesize... (cached) yes
checking for working mmap... (cached) yes
checking for ftruncate... (cached) yes
checking for memcmp... (cached) yes
checking for memcpy... (cached) yes
checking for memmove... (cached) yes
checking for memset... (cached) yes
checking whether overlapping arrays are copied correctly... yes
checking the coffee machine... empty - operator may not work as expected
checking whether 64-bit ELF support is sufficient... yes
checking whether to include 64-bit support... yes
checking whether versioning support is sufficient... no
checking whether to include versioning support... no
checking whether NLS is requested... no
checking for gettext in -lintl... no
checking host system type... x86_64-unknown-openbsd6.1
checking whether to build a shared library... yes
checking whether GNU naming conventions are requested... no
checking for ld... /usr/bin/ld
updating cache ./config.cache
creating ./config.status
creating Makefile
creating lib/Makefile
creating po/M

Port bulk with

2017-08-09 Thread Martin Pieuchot
As discussed recently on tech@ with Karel, some ports would benefit
from having a  header.  This header is the Solaris version of
our  and has been adopted by FreeBSD.

I'd like to migrate our base system from  to .  This
would make our base tools dealing with ELF more portable.

So here's a first step, introducing /usr/include/elf.h.  Could some of
you run a bulk with it and report the possible breakages?

Thanks,
Martin

Index: Makefile
===
RCS file: /cvs/src/include/Makefile,v
retrieving revision 1.219
diff -u -p -r1.219 Makefile
--- Makefile17 Apr 2017 15:53:21 -  1.219
+++ Makefile9 Aug 2017 15:46:46 -
@@ -10,9 +10,10 @@
 .include 
 
 FILES= a.out.h ar.h asr.h assert.h bitstring.h blf.h bsd_auth.h \
-   complex.h cpio.h ctype.h curses.h db.h dirent.h disktab.h \
-   dlfcn.h elf_abi.h err.h errno.h fenv.h float.h fnmatch.h fstab.h fts.h \
-   ftw.h getopt.h glob.h grp.h icdb.h ieeefp.h ifaddrs.h inttypes.h \
+   complex.h cpio.h ctype.h curses.h db.h dirent.h disktab.h dlfcn.h \
+   elf.h elf_abi.h err.h errno.h \
+   fenv.h float.h fnmatch.h fstab.h fts.h ftw.h \
+   getopt.h glob.h grp.h icdb.h ieeefp.h ifaddrs.h inttypes.h \
iso646.h kvm.h langinfo.h libgen.h limits.h link.h link_elf.h \
locale.h login_cap.h math.h md5.h memory.h ndbm.h netdb.h netgroup.h \
nlist.h nl_types.h paths.h poll.h pwd.h ranlib.h readpassphrase.h \
Index: elf.h
===
RCS file: elf.h
diff -N elf.h
--- /dev/null   1 Jan 1970 00:00:00 -
+++ elf.h   9 Aug 2017 15:49:08 -
@@ -0,0 +1,12 @@
+/* $OpenBSD$   */
+
+/*
+ * Public domain.
+ */
+
+#ifndef _ELF_H_
+#define _ELF_H_
+
+#include 
+
+#endif /* _ELF_H_ */