net-libs/netwib: fix build with clang 16

Closes: https://bugs.gentoo.org/710626
Closes: https://bugs.gentoo.org/828721
Closes: https://bugs.gentoo.org/879735
Signed-off-by: David Seifert <soap@gentoo.org>
This commit is contained in:
David Seifert
2023-03-18 22:22:44 +01:00
parent 29b0f9e1a2
commit 686d951513
5 changed files with 195 additions and 61 deletions

View File

@@ -0,0 +1,19 @@
--- a/genemake
+++ b/genemake
@@ -1279,6 +1279,7 @@
#---
cat > `checkcompilfile` <<EOF
+ #include <string.h>
int ether_hostton(char *para1, char *para2);
int main(void)
{ char p1[10], p2[10];
@@ -1668,7 +1669,7 @@
#include <pwd.h>
#include <grp.h>
int main(void)
- { getgrgid_r(NULL, NULL, NULL, 0, NULL);
+ { getgrgid_r(0, NULL, NULL, 0, NULL);
return(0);
}
EOF

View File

@@ -0,0 +1,35 @@
--- a/config.dat
+++ b/config.dat
@@ -7,11 +7,11 @@
##########################################################################
### directories where netwib will be installed
-NETWIBDEF_INSTPREFIX=/usr/local
+NETWIBDEF_INSTPREFIX="${EPREFIX}/usr"
NETWIBDEF_INSTINCLUDE=${NETWIBDEF_INSTPREFIX}/include
NETWIBDEF_INSTLIB=${NETWIBDEF_INSTPREFIX}/lib
NETWIBDEF_INSTBIN=${NETWIBDEF_INSTPREFIX}/bin
-NETWIBDEF_INSTMAN=${NETWIBDEF_INSTPREFIX}/man
+NETWIBDEF_INSTMAN=${NETWIBDEF_INSTPREFIX}/share/man
NETWIBDEF_INSTMAN3=${NETWIBDEF_INSTMAN}/man3
### installation destination directory
@@ -19,14 +19,14 @@
##########################################################################
### programs
-NETWIBDEF_PROGCC=gcc
-NETWIBDEF_PROGAR=ar
-NETWIBDEF_PROGRANLIB=ranlib
+NETWIBDEF_PROGCC="${CC}"
+NETWIBDEF_PROGAR="${AR}"
+NETWIBDEF_PROGRANLIB="${RANLIB}"
NETWIBDEF_PROGGREP=grep
##########################################################################
### compiler options
-NETWIBDEF_PROGCC_OPT="-Wall -O2"
+NETWIBDEF_PROGCC_OPT="${CFLAGS:-} ${CPPFLAGS:-}"
NETWIBDEF_PROGCC_INC=""
NETWIBDEF_PROGCC_LIB=""
NETWIBDEF_PROGCC_OPTPIC=""

View File

@@ -0,0 +1,85 @@
--- a/genemake
+++ b/genemake
@@ -1598,21 +1598,6 @@
fi
#---
-NETWIBDEF_HAVEFUNC_PTHREAD_YIELD=0
-if [ $NETWIBDEF_HAVEINCL_PTHREAD = 1 ] ; then
- cat > `checkcompilfile` <<EOF
- #include <pthread.h>
- int main(void)
- { pthread_yield();
- return(0);
- }
-EOF
- checkcompilstd "pthread_yield" "" "" ""
- NETWIBDEF_HAVEFUNC_PTHREAD_YIELD=`checkcompilyes`
- checkceclean
-fi
-
-#---
NETWIBDEF_HAVEFUNC_SCHED_YIELD=0
if [ $NETWIBDEF_HAVEINCL_SCHED = 1 ] ; then
cat > `checkcompilfile` <<EOF
@@ -2042,7 +2027,6 @@
echo "#define NETWIBDEF_HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK $NETWIBDEF_HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK $NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK $NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK" >> $deffile
-echo "#define NETWIBDEF_HAVEFUNC_PTHREAD_YIELD $NETWIBDEF_HAVEFUNC_PTHREAD_YIELD" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_SCHED_YIELD $NETWIBDEF_HAVEFUNC_SCHED_YIELD" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETPWNAM_R $NETWIBDEF_HAVEFUNC_GETPWNAM_R" >> $deffile
echo "#define NETWIBDEF_HAVEFUNC_GETGRNAM_R $NETWIBDEF_HAVEFUNC_GETGRNAM_R" >> $deffile
@@ -2205,7 +2189,6 @@
HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK) echo $NETWIBDEF_HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK ;;
HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK) echo $NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK ;;
HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK) echo $NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK ;;
- HAVEFUNC_PTHREAD_YIELD) echo $NETWIBDEF_HAVEFUNC_PTHREAD_YIELD ;;
HAVEFUNC_SCHED_YIELD) echo $NETWIBDEF_HAVEFUNC_SCHED_YIELD ;;
HAVEFUNC_GETPWNAM_R) echo $NETWIBDEF_HAVEFUNC_GETPWNAM_R ;;
HAVEFUNC_GETGRNAM_R) echo $NETWIBDEF_HAVEFUNC_GETGRNAM_R ;;
--- a/netwib/def_windows.h
+++ b/netwib/def_windows.h
@@ -100,7 +100,6 @@
#define NETWIBDEF_HAVEFUNC_PTHREAD_MUTEX_TIMEDLOCK 0
#define NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK 0
#define NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK 0
-#define NETWIBDEF_HAVEFUNC_PTHREAD_YIELD 0
#define NETWIBDEF_HAVEFUNC_SCHED_YIELD 0
#define NETWIBDEF_HAVEFUNC_GETPWNAM_R 0
#define NETWIBDEF_HAVEFUNC_GETGRNAM_R 0
--- a/netwib/inc/missing.h
+++ b/netwib/inc/missing.h
@@ -3,7 +3,6 @@
#if 0
/* Some systems have the function in their library, but
prototypes are missing. Those one can be used instead. */
- int pthread_yield(void);
int getpagesize(void);
int usleep(unsigned int useconds);
int getpwnam_r(const char *name,
--- a/netwib/sys/internal.c
+++ b/netwib/sys/internal.c
@@ -221,8 +221,6 @@
NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDRDLOCK);
netwib_co_i("NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK",
NETWIBDEF_HAVEFUNC_PTHREAD_RWLOCK_TIMEDWRLOCK);
- netwib_co_i("NETWIBDEF_HAVEFUNC_PTHREAD_YIELD",
- NETWIBDEF_HAVEFUNC_PTHREAD_YIELD);
netwib_co_i("NETWIBDEF_HAVEFUNC_SCHED_YIELD",
NETWIBDEF_HAVEFUNC_SCHED_YIELD);
netwib_co_i("NETWIBDEF_HAVEFUNC_GETPWNAM_R",
--- a/netwib/sys/priv/pause.c
+++ b/netwib/sys/priv/pause.c
@@ -6,10 +6,7 @@
{
#if defined NETWIBDEF_SYSNAME_Unix
- #if NETWIBDEF_HAVEFUNC_PTHREAD_YIELD == 1
- pthread_yield();
- return(NETWIB_ERR_OK);
- #elif NETWIBDEF_HAVEFUNC_SCHED_YIELD == 1
+ #if NETWIBDEF_HAVEFUNC_SCHED_YIELD == 1
sched_yield();
return(NETWIB_ERR_OK);
#endif

View File

@@ -0,0 +1,56 @@
# Copyright 1999-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# NOTE: netwib, netwox and netwag go together, bump all or bump none
EAPI=8
inherit toolchain-funcs
DESCRIPTION="Library of Ethernet, IP, UDP, TCP, ICMP, ARP and RARP protocols"
HOMEPAGE="
http://www.laurentconstantin.com/en/netw/netwib/
http://ntwib.sourceforge.net/
"
SRC_URI="
mirror://sourceforge/ntwib/${P}-src.tgz
doc? ( mirror://sourceforge/ntwib/${P}-doc_html.tgz )"
S="${WORKDIR}/${P}-src/src"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~hppa ~ppc x86"
IUSE="doc"
DEPEND="
net-libs/libnet:1.1
net-libs/libpcap"
RDEPEND="${DEPEND}"
PATCHES=(
"${FILESDIR}"/${P}-C99-decls.patch
"${FILESDIR}"/${P}-config.patch
"${FILESDIR}"/${P}-sched_yield.patch
)
src_configure() {
tc-export AR CC RANLIB
sed -e "s:/lib:/$(get_libdir):" \
-i config.dat || die
sh genemake || die
}
src_install() {
default
dodoc \
../README.TXT \
../doc/{changelog.txt,credits.txt,integration.txt} \
../doc/{problemreport.txt,problemusageunix.txt,todo.txt}
if use doc; then
docinto html
dodoc -r "${WORKDIR}"/${P}-doc_html/{index.html,${PN}}
fi
}

View File

@@ -1,61 +0,0 @@
# Copyright 1999-2021 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# NOTE: netwib, netwox and netwag go together, bump all or bump none
EAPI=8
inherit toolchain-funcs
DESCRIPTION="Library of Ethernet, IP, UDP, TCP, ICMP, ARP and RARP protocols"
HOMEPAGE="
http://www.laurentconstantin.com/en/netw/netwib/
http://ntwib.sourceforge.net/
"
SRC_URI="mirror://sourceforge/ntwib/${P}-src.tgz
doc? ( mirror://sourceforge/ntwib/${P}-doc_html.tgz )"
S="${WORKDIR}/${P}-src/src"
LICENSE="GPL-3"
SLOT="0"
KEYWORDS="~amd64 ~hppa ~ppc x86"
IUSE="doc"
DEPEND="
net-libs/libnet:1.1
net-libs/libpcap
"
RDEPEND="${DEPEND}"
src_prepare() {
default
sed -i \
-e 's:/man$:/share/man:g' \
-e "s:/lib:/$(get_libdir):" \
-e "s:/usr/local:/usr:" \
-e "s:=ar:=$(tc-getAR):" \
-e "s:=ranlib:=$(tc-getRANLIB):" \
-e "s:=gcc:=$(tc-getCC):" \
-e "s:-O2:${CFLAGS}:" \
config.dat || die
}
src_configure() {
sh genemake || die
}
src_install() {
default
dodoc ../README.TXT
if use doc; then
mkdir "${ED}"/usr/share/doc/${PF}/html || die
mv "${WORKDIR}"/${P}-doc_html/{index.html,${PN}} \
"${ED}"/usr/share/doc/${PF}/html || die
fi
cd "${S}"/.. || die
dodoc \
doc/{changelog.txt,credits.txt,integration.txt} \
doc/{problemreport.txt,problemusageunix.txt,todo.txt}
}