Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
sys-devel/bin86: fix implicit int declarations
Closes: https://bugs.gentoo.org/880797 Signed-off-by: Pascal Jäger <pascal.jaeger@leimstift.de> Closes: #32795 Signed-off-by: Viorel Munteanu <ceamac@gentoo.org>
- Loading branch information
Showing
2 changed files
with
181 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# Copyright 1999-2023 Gentoo Authors | ||
# Distributed under the terms of the GNU General Public License v2 | ||
|
||
EAPI="8" | ||
|
||
inherit toolchain-funcs | ||
|
||
DESCRIPTION="Assembler and loader used to create kernel bootsector" | ||
HOMEPAGE="http://v3.sk/~lkundrak/dev86/" | ||
SRC_URI="http://v3.sk/~lkundrak/dev86/${P}.tar.gz" | ||
|
||
LICENSE="GPL-2" | ||
SLOT="0" | ||
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~x86" | ||
|
||
PATCHES=( "${FILESDIR}"/${PN}-0.16.21-amd64-build.patch | ||
"${FILESDIR}"/${PN}-0.16.21-fix-build-for-clang16.patch | ||
) | ||
|
||
src_prepare() { | ||
use elibc_musl && CPPFLAGS="${CPPFLAGS} -U__linux__" | ||
sed -i \ | ||
-e '/^PREFIX/s|=.*|=$(DESTDIR)/usr|' \ | ||
-e '/^MANDIR/s|)/man/man1|)/share/man/man1|' \ | ||
-e '/^INSTALL_OPTS/s|-s||' \ | ||
-e "/^CFLAGS/s|=.*|=${CFLAGS} -D_POSIX_SOURCE ${CPPFLAGS}|" \ | ||
-e "/^LDFLAGS/s|=.*|=${LDFLAGS}|" \ | ||
Makefile || die | ||
tc-export CC | ||
default | ||
} | ||
|
||
src_install() { | ||
dodir /usr/bin /usr/share/man/man1 | ||
default | ||
} |
145 changes: 145 additions & 0 deletions
145
sys-devel/bin86/files/bin86-0.16.21-fix-build-for-clang16.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,145 @@ | ||
Subject: [PATCH] fix build for clang 16 | ||
|
||
clang 16 does not allow implicit int in function declarations | ||
|
||
Bug: https://bugs.gentoo.org/880797 | ||
Upstream PR: https://github.com/lkundrak/dev86/pull/26 | ||
|
||
Signed-off-by: Pascal Jäger <pascal.jaeger@leimstift.de> | ||
--- | ||
ld/catimage.c | 32 +++++++++++++++++++------------- | ||
ld/objchop.c | 16 ++++++++-------- | ||
2 files changed, 27 insertions(+), 21 deletions(-) | ||
|
||
diff --git a/ld/catimage.c b/ld/catimage.c | ||
index 1f5e160..47161b9 100644 | ||
--- a/ld/catimage.c | ||
+++ b/ld/catimage.c | ||
@@ -24,6 +24,7 @@ | ||
#ifdef __STDC__ | ||
#include <unistd.h> | ||
#include <stdlib.h> | ||
+#include <string.h> | ||
#endif | ||
#include "x86_aout.h" | ||
|
||
@@ -39,9 +40,14 @@ FILE * ofd; | ||
FILE * ifd = 0; | ||
struct exec header; | ||
|
||
-main(argc, argv) | ||
-int argc; | ||
-char ** argv; | ||
+void open_obj(char * fname); | ||
+void copy_segment(long out_offset,long in_offset,long length); | ||
+void patch_bin(long file_off, int value); | ||
+void read_symtable(void); | ||
+void fatal(char * str); | ||
+ | ||
+int | ||
+main(int argc, char ** argv) | ||
{ | ||
long image_offset, text_off; | ||
int image_id; | ||
@@ -100,8 +106,8 @@ char ** argv; | ||
exit(0); | ||
} | ||
|
||
-open_obj(fname) | ||
-char * fname; | ||
+void | ||
+open_obj(char * fname) | ||
{ | ||
input_file = fname; | ||
|
||
@@ -117,8 +123,8 @@ char * fname; | ||
fatal("Input file has bad magic number"); | ||
} | ||
|
||
-copy_segment(out_offset, in_offset, length) | ||
-long out_offset, in_offset, length; | ||
+void | ||
+copy_segment(long out_offset,long in_offset,long length) | ||
{ | ||
char buffer[1024]; | ||
int ssize; | ||
@@ -143,9 +149,8 @@ long out_offset, in_offset, length; | ||
} | ||
} | ||
|
||
-patch_bin(file_off, value) | ||
-long file_off; | ||
-int value; | ||
+void | ||
+patch_bin(long file_off, int value) | ||
{ | ||
char wbuf[4]; | ||
if( file_off > 0 ) | ||
@@ -163,7 +168,8 @@ int value; | ||
} | ||
} | ||
|
||
-read_symtable() | ||
+void | ||
+read_symtable(void) | ||
{ | ||
struct nlist item; | ||
int nitems; | ||
@@ -234,8 +240,8 @@ read_symtable() | ||
} | ||
} | ||
|
||
-fatal(str) | ||
-char * str; | ||
+void | ||
+fatal(char * str) | ||
{ | ||
fprintf(stderr, "catimage:%s: %s\n", input_file, str); | ||
exit(2); | ||
diff --git a/ld/objchop.c b/ld/objchop.c | ||
index c7631c1..495df75 100644 | ||
--- a/ld/objchop.c | ||
+++ b/ld/objchop.c | ||
@@ -16,12 +16,13 @@ main() | ||
|
||
#else | ||
|
||
+void fatal(char* str); | ||
+void write_file(char *fname, long bsize); | ||
+ | ||
FILE * ifd; | ||
struct exec header; | ||
|
||
-main(argc, argv) | ||
-int argc; | ||
-char ** argv; | ||
+int main(int argc, char** argv) | ||
{ | ||
FILE * ofd; | ||
if( argc != 5 ) fatal("Usage: objchop a.out text.bin data.bin sizes.asm"); | ||
@@ -56,9 +57,8 @@ char ** argv; | ||
exit(0); | ||
} | ||
|
||
-write_file(fname, bsize) | ||
-char * fname; | ||
-long bsize; | ||
+void | ||
+write_file(char *fname, long bsize) | ||
{ | ||
char buffer[1024]; | ||
int ssize; | ||
@@ -81,8 +81,8 @@ long bsize; | ||
fclose(ofd); | ||
} | ||
|
||
-fatal(str) | ||
-char * str; | ||
+void | ||
+fatal(char* str) | ||
{ | ||
fprintf(stderr, "objchop: %s\n", str); | ||
exit(2); | ||
-- | ||
2.41.0 | ||
|