Bug#1069498: libx86emu: FTBFS on armhf: mem.c:581:12: error: implicit declaration of function ‘inb’; did you mean ‘ins’? [-Werror=implicit-function-declaration]

2024-06-19 Thread Michael Prokop
Hi!

* John Paul Adrian Glaubitz [Tue Jun 11, 2024 at 02:18:33PM +0200]:
> On Tue, 2024-06-11 at 13:42 +0200, Guillem Jover wrote:

> > > I had a look at this, and it seems like this package has never really
> > > worked on ARM systems at all? And this was hidden due to the missing
> > > declarations not being an error.
> > > 
> > > AFAIK, only x86 (i386 and amd64), ia64 and alpha have port I/O, other
> > > systems have instead memory mapped I/O, but the code in mem.c is
> > > unconditionally calling port I/O functions such as in*() and out*(),
> > > provided by glibc.
> > > 
> > > Until the upstream code is ported to systems with memory mapper I/O, I
> > > think the "best" way to resolve this would be to restrict the
> > > architecture list to:
> > > 
> > >   any-amd64 any-i386 alpha ia64

> > The attached patch implements this. It should not affect reverse build
> > depending packages (only hwinfo) which is already arch restricted to
> > «amd64 i386».
> > 
> > I'm including the arm list to confirm the above, but also in case
> > someone there feels like porting the library to support memory mapped
> > I/O? (But perhaps that's not worth the effort.)

> It's perfectly fine to disable libx86emu on ARM as it has already been
> correctly stated, there are no I/O ports on ARM so the above code won't
> work on ARM.
> 
> I also don't expect that to change in the future, so it's not worth bothering
> about this in the future, especially since the upstream project hasn't been
> very active lately [1].

Thanks Guillem and Adrian.

Would be great to get hwinfo back into Debian/testing to make sure
it finds its way into Debian/trixie also.

Sebastien, is there anything we can assist with to address this?

regards
-mika-


signature.asc
Description: PGP signature


Bug#1069498: libx86emu: FTBFS on armhf: mem.c:581:12: error: implicit declaration of function ‘inb’; did you mean ‘ins’? [-Werror=implicit-function-declaration]

2024-06-11 Thread John Paul Adrian Glaubitz
Hi Guillem,

On Tue, 2024-06-11 at 13:42 +0200, Guillem Jover wrote:
> > I had a look at this, and it seems like this package has never really
> > worked on ARM systems at all? And this was hidden due to the missing
> > declarations not being an error.
> > 
> > AFAIK, only x86 (i386 and amd64), ia64 and alpha have port I/O, other
> > systems have instead memory mapped I/O, but the code in mem.c is
> > unconditionally calling port I/O functions such as in*() and out*(),
> > provided by glibc.
> > 
> > Until the upstream code is ported to systems with memory mapper I/O, I
> > think the "best" way to resolve this would be to restrict the
> > architecture list to:
> > 
> >   any-amd64 any-i386 alpha ia64
> 
> The attached patch implements this. It should not affect reverse build
> depending packages (only hwinfo) which is already arch restricted to
> «amd64 i386».
> 
> I'm including the arm list to confirm the above, but also in case
> someone there feels like porting the library to support memory mapped
> I/O? (But perhaps that's not worth the effort.)

It's perfectly fine to disable libx86emu on ARM as it has already been
correctly stated, there are no I/O ports on ARM so the above code won't
work on ARM.

I also don't expect that to change in the future, so it's not worth bothering
about this in the future, especially since the upstream project hasn't been
very active lately [1].

Adrian

-- 
 .''`.  John Paul Adrian Glaubitz
: :' :  Debian Developer
`. `'   Physicist
  `-GPG: 62FF 8A75 84E0 2956 9546  0006 7426 3B37 F5B5 F913



Bug#1069498: libx86emu: FTBFS on armhf: mem.c:581:12: error: implicit declaration of function ‘inb’; did you mean ‘ins’? [-Werror=implicit-function-declaration]

2024-06-11 Thread Guillem Jover
Control: tag -1 patch

[ CCing debian-arm list to loop them into the porting issue. ]

Hi!

On Fri, 2024-06-07 at 14:42:18 +0200, Guillem Jover wrote:
> On Sat, 2024-04-20 at 14:56:40 +0200, Lucas Nussbaum wrote:
> > Source: libx86emu
> > Version: 3.5-1
> > Severity: serious
> > Justification: FTBFS
> > Tags: trixie sid ftbfs
> > User: lu...@debian.org
> > Usertags: ftbfs-20240420 ftbfs-trixie ftbfs-t64-armhf
> 
> > During a rebuild of all packages in sid, your package failed to build
> > on armhf.

> > Relevant part (hopefully):
> > > cc -g -O2 -Werror=implicit-function-declaration 
> > > -ffile-prefix-map=/<>=. -fstack-protector-strong 
> > > -fstack-clash-protection -Wformat -Werror=format-security -g -O2 -fPIC 
> > > -fvisibility=hidden -fomit-frame-pointer -Wall -D_LARGEFILE_SOURCE 
> > > -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 
> > > -Wl,-z,relro -Wl,-z,now -c ops.c
> > > mem.c: In function ‘vm_i_byte’:
> > > mem.c:581:12: error: implicit declaration of function ‘inb’; did you mean 
> > > ‘ins’? [-Werror=implicit-function-declaration]
> > >   581 | return inb(addr);
> > >   |^~~
> > >   |ins
> > > mem.c: In function ‘vm_i_word’:
> > > mem.c:619:10: error: implicit declaration of function ‘inw’; did you mean 
> > > ‘ins’? [-Werror=implicit-function-declaration]
> > >   619 |   return inw(addr);
> > >   |  ^~~
> > >   |  ins
> > > mem.c: In function ‘vm_i_dword’:
> > > mem.c:657:10: error: implicit declaration of function ‘inl’; did you mean 
> > > ‘ins’? [-Werror=implicit-function-declaration]
> > >   657 |   return inl(addr);
> > >   |  ^~~
> > >   |  ins
> > > mem.c: In function ‘vm_o_byte’:
> > > mem.c:676:5: error: implicit declaration of function ‘outb’; did you mean 
> > > ‘outs’? [-Werror=implicit-function-declaration]
> > >   676 | outb(val, addr);
> > >   | ^~~~
> > >   | outs
> > > mem.c: In function ‘vm_o_word’:
> > > mem.c:711:3: error: implicit declaration of function ‘outw’; did you mean 
> > > ‘outs’? [-Werror=implicit-function-declaration]
> > >   711 |   outw(val, addr);
> > >   |   ^~~~
> > >   |   outs
> > > mem.c: In function ‘vm_o_dword’:
> > > mem.c:748:3: error: implicit declaration of function ‘outl’; did you mean 
> > > ‘outs’? [-Werror=implicit-function-declaration]
> > >   748 |   outl(val, addr);
> > >   |   ^~~~
> > >   |   outs
> > > cc1: some warnings being treated as errors
> > > make[1]: *** [Makefile:22: mem.o] Error 1
> 
> I had a look at this, and it seems like this package has never really
> worked on ARM systems at all? And this was hidden due to the missing
> declarations not being an error.
> 
> AFAIK, only x86 (i386 and amd64), ia64 and alpha have port I/O, other
> systems have instead memory mapped I/O, but the code in mem.c is
> unconditionally calling port I/O functions such as in*() and out*(),
> provided by glibc.
> 
> Until the upstream code is ported to systems with memory mapper I/O, I
> think the "best" way to resolve this would be to restrict the
> architecture list to:
> 
>   any-amd64 any-i386 alpha ia64

The attached patch implements this. It should not affect reverse build
depending packages (only hwinfo) which is already arch restricted to
«amd64 i386».

I'm including the arm list to confirm the above, but also in case
someone there feels like porting the library to support memory mapped
I/O? (But perhaps that's not worth the effort.)

Thanks,
Guillem
From bafb0ddee8942c60b17745547854b3ed53ca4545 Mon Sep 17 00:00:00 2001
From: Guillem Jover 
Date: Tue, 11 Jun 2024 13:30:40 +0200
Subject: [PATCH] Do not build on ARM architectures where there is no port I/O

Only x86 (i386 and amd64), ia64 and alpha have port I/O, other systems
have instead memory mapped I/O, but the code in mem.c is unconditionally
calling port I/O functions such as in*() and out*(), provided by glibc.

Until the upstream code is ported to systems with memory mapped I/O, the
best way forward is to restrict to systems that are supported right now.

(The only current package build depending on libx86emu-dev is already
arch restricted to amd64 and i386.)
---
 debian/control | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/debian/control b/debian/control
index f10e3e2..e8c974b 100644
--- a/debian/control
+++ b/debian/control
@@ -11,7 +11,7 @@ Homepage: https://github.com/wfeldt/libx86emu
 Rules-Requires-Root: no
 
 Package: libx86emu3
-Architecture: any-amd64 any-i386 alpha armel armhf ia64
+Architecture: any-amd64 any-i386 alpha ia64
 Multi-Arch: same
 Depends: ${misc:Depends}, ${shlibs:Depends}
 Pre-Depends: ${misc:Pre-Depends}
@@ -23,7 +23,7 @@ Description: x86 emulation library
  This package contains the library.
 
 Package: libx86emu-dev
-Architecture: any-amd64 any-i386 alpha armel armhf ia64
+Architecture: any-amd64 any-i386 alpha ia64
 Multi-Arch: same
 Section: libdevel
 Depends: libx86emu3 (= 

Bug#1069498: libx86emu: FTBFS on armhf: mem.c:581:12: error: implicit declaration of function ‘inb’; did you mean ‘ins’? [-Werror=implicit-function-declaration]

2024-06-07 Thread Guillem Jover
Hi!

On Sat, 2024-04-20 at 14:56:40 +0200, Lucas Nussbaum wrote:
> Source: libx86emu
> Version: 3.5-1
> Severity: serious
> Justification: FTBFS
> Tags: trixie sid ftbfs
> User: lu...@debian.org
> Usertags: ftbfs-20240420 ftbfs-trixie ftbfs-t64-armhf

> During a rebuild of all packages in sid, your package failed to build
> on armhf.
> 
> 
> Relevant part (hopefully):
> > cc -g -O2 -Werror=implicit-function-declaration 
> > -ffile-prefix-map=/<>=. -fstack-protector-strong 
> > -fstack-clash-protection -Wformat -Werror=format-security -g -O2 -fPIC 
> > -fvisibility=hidden -fomit-frame-pointer -Wall -D_LARGEFILE_SOURCE 
> > -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 
> > -Wl,-z,relro -Wl,-z,now -c ops.c
> > mem.c: In function ‘vm_i_byte’:
> > mem.c:581:12: error: implicit declaration of function ‘inb’; did you mean 
> > ‘ins’? [-Werror=implicit-function-declaration]
> >   581 | return inb(addr);
> >   |^~~
> >   |ins
> > mem.c: In function ‘vm_i_word’:
> > mem.c:619:10: error: implicit declaration of function ‘inw’; did you mean 
> > ‘ins’? [-Werror=implicit-function-declaration]
> >   619 |   return inw(addr);
> >   |  ^~~
> >   |  ins
> > mem.c: In function ‘vm_i_dword’:
> > mem.c:657:10: error: implicit declaration of function ‘inl’; did you mean 
> > ‘ins’? [-Werror=implicit-function-declaration]
> >   657 |   return inl(addr);
> >   |  ^~~
> >   |  ins
> > mem.c: In function ‘vm_o_byte’:
> > mem.c:676:5: error: implicit declaration of function ‘outb’; did you mean 
> > ‘outs’? [-Werror=implicit-function-declaration]
> >   676 | outb(val, addr);
> >   | ^~~~
> >   | outs
> > mem.c: In function ‘vm_o_word’:
> > mem.c:711:3: error: implicit declaration of function ‘outw’; did you mean 
> > ‘outs’? [-Werror=implicit-function-declaration]
> >   711 |   outw(val, addr);
> >   |   ^~~~
> >   |   outs
> > mem.c: In function ‘vm_o_dword’:
> > mem.c:748:3: error: implicit declaration of function ‘outl’; did you mean 
> > ‘outs’? [-Werror=implicit-function-declaration]
> >   748 |   outl(val, addr);
> >   |   ^~~~
> >   |   outs
> > cc1: some warnings being treated as errors
> > make[1]: *** [Makefile:22: mem.o] Error 1

I had a look at this, and it seems like this package has never really
worked on ARM systems at all? And this was hidden due to the missing
declarations not being an error.

AFAIK, only x86 (i386 and amd64), ia64 and alpha have port I/O, other
systems have instead memory mapped I/O, but the code in mem.c is
unconditionally calling port I/O functions such as in*() and out*(),
provided by glibc.

Until the upstream code is ported to systems with memory mapper I/O, I
think the "best" way to resolve this would be to restrict the
architecture list to:

  any-amd64 any-i386 alpha ia64

Thanks,
Guillem



Bug#1069498: libx86emu: FTBFS on armhf: mem.c:581:12: error: implicit declaration of function ‘inb’; did you mean ‘ins’? [-Werror=implicit-function-declaration]

2024-04-20 Thread Lucas Nussbaum
Source: libx86emu
Version: 3.5-1
Severity: serious
Justification: FTBFS
Tags: trixie sid ftbfs
User: lu...@debian.org
Usertags: ftbfs-20240420 ftbfs-trixie ftbfs-t64-armhf

Hi,

During a rebuild of all packages in sid, your package failed to build
on armhf.


Relevant part (hopefully):
> cc -g -O2 -Werror=implicit-function-declaration 
> -ffile-prefix-map=/<>=. -fstack-protector-strong 
> -fstack-clash-protection -Wformat -Werror=format-security -g -O2 -fPIC 
> -fvisibility=hidden -fomit-frame-pointer -Wall -D_LARGEFILE_SOURCE 
> -D_FILE_OFFSET_BITS=64 -D_TIME_BITS=64 -Wdate-time -D_FORTIFY_SOURCE=2 
> -Wl,-z,relro -Wl,-z,now -c ops.c
> mem.c: In function ‘vm_i_byte’:
> mem.c:581:12: error: implicit declaration of function ‘inb’; did you mean 
> ‘ins’? [-Werror=implicit-function-declaration]
>   581 | return inb(addr);
>   |^~~
>   |ins
> mem.c: In function ‘vm_i_word’:
> mem.c:619:10: error: implicit declaration of function ‘inw’; did you mean 
> ‘ins’? [-Werror=implicit-function-declaration]
>   619 |   return inw(addr);
>   |  ^~~
>   |  ins
> mem.c: In function ‘vm_i_dword’:
> mem.c:657:10: error: implicit declaration of function ‘inl’; did you mean 
> ‘ins’? [-Werror=implicit-function-declaration]
>   657 |   return inl(addr);
>   |  ^~~
>   |  ins
> mem.c: In function ‘vm_o_byte’:
> mem.c:676:5: error: implicit declaration of function ‘outb’; did you mean 
> ‘outs’? [-Werror=implicit-function-declaration]
>   676 | outb(val, addr);
>   | ^~~~
>   | outs
> mem.c: In function ‘vm_o_word’:
> mem.c:711:3: error: implicit declaration of function ‘outw’; did you mean 
> ‘outs’? [-Werror=implicit-function-declaration]
>   711 |   outw(val, addr);
>   |   ^~~~
>   |   outs
> mem.c: In function ‘vm_o_dword’:
> mem.c:748:3: error: implicit declaration of function ‘outl’; did you mean 
> ‘outs’? [-Werror=implicit-function-declaration]
>   748 |   outl(val, addr);
>   |   ^~~~
>   |   outs
> cc1: some warnings being treated as errors
> make[1]: *** [Makefile:22: mem.o] Error 1


The full build log is available from:
http://qa-logs.debian.net/2024/04/20/libx86emu_3.5-1_unstable-armhf.log

All bugs filed during this archive rebuild are listed at:
https://bugs.debian.org/cgi-bin/pkgreport.cgi?tag=ftbfs-20240420;users=lu...@debian.org
or:
https://udd.debian.org/bugs/?release=na=ign=7=7=only=ftbfs-20240420=lu...@debian.org=1=1=1=1#results

A list of current common problems and possible solutions is available at
http://wiki.debian.org/qa.debian.org/FTBFS . You're welcome to contribute!

If you reassign this bug to another package, please mark it as 'affects'-ing
this package. See https://www.debian.org/Bugs/server-control#affects

If you fail to reproduce this, please provide a build log and diff it with mine
so that we can identify if something relevant changed in the meantime.