Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 804247 Details for
Bug 869371
app-misc/screen-4.9.0: implicit function declarations errors when building with clang-15
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
configure-link-tests.patch
configure-link-tests.patch (text/plain), 16.23 KB, created by
nvinson234
on 2022-09-09 17:18:11 UTC
(
hide
)
Description:
configure-link-tests.patch
Filename:
MIME Type:
Creator:
nvinson234
Created:
2022-09-09 17:18:11 UTC
Size:
16.23 KB
patch
obsolete
>diff screen-4.9.0/configure.ac b/src/configure.ac >--- screen-4.9.0/configure.ac.old >+++ screen-4.9.0/configure.ac >@@ -157,10 +157,11 @@ if test -n "$ULTRIX"; then > fi > AC_CHECKING(for POSIX.1) > AC_EGREP_CPP(YES_IS_DEFINED, > [#include <sys/types.h> > #include <unistd.h> >+int > main () { > #ifdef _POSIX_VERSION > YES_IS_DEFINED; > #endif > ], AC_NOTE(- you have a POSIX system) AC_DEFINE(POSIX) posix=1) >@@ -231,10 +232,11 @@ dnl > > AC_CHECKING(BSD job jontrol) > AC_TRY_LINK( > [#include <sys/types.h> > #include <sys/ioctl.h> >+#include <unistd.h> > ], [ > #ifdef POSIX > tcsetpgrp(0, 0); > #else > int x = TIOCSPGRP; >@@ -248,48 +250,64 @@ int y = TIOCNOTTY; > > dnl > dnl **** setresuid(), setreuid(), seteuid() **** > dnl > AC_CHECKING(setresuid) >-AC_TRY_LINK(,[ >+AC_TRY_LINK( >+[#include <unistd.h> >+], [ > setresuid(0, 0, 0); > ], AC_DEFINE(HAVE_SETRESUID)) > AC_CHECKING(setreuid) >-AC_TRY_LINK(,[ >+AC_TRY_LINK( >+[#include <unistd.h> >+], [ > setreuid(0, 0); > ], AC_DEFINE(HAVE_SETREUID)) > dnl > dnl seteuid() check: > dnl linux seteuid was broken before V1.1.11 > dnl NeXT, AUX, ISC, and ultrix are still broken (no saved uid support) > dnl Solaris seteuid doesn't change the saved uid, bad for > dnl multiuser screen sessions > AC_CHECKING(seteuid) >-AC_TRY_LINK(,[ >+AC_TRY_LINK( >+[#include <unistd.h> >+],[ > #if defined(linux) || defined(NeXT) || defined(_AUX_SOURCE) || defined(AUX) || defined(ultrix) || (defined(sun) && defined(SVR4)) || defined(ISC) || defined(sony_news) >-seteuid_is_broken(0); >+int seteuid_is_broken(int); seteuid_is_broken(0); > #else > seteuid(0); > #endif > ], AC_DEFINE(HAVE_SETEUID)) > > dnl execvpe > AC_CHECKING(execvpe) >-AC_TRY_LINK(,[ >+AC_TRY_LINK( >+[#include <unistd.h> >+],[ > execvpe(0, 0, 0); > ], AC_DEFINE(HAVE_EXECVPE) > CFLAGS="$CFLAGS -D_GNU_SOURCE") > > dnl > dnl **** select() **** > dnl > > AC_CHECKING(select) >-AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],, >+AC_TRY_LINK( >+[#include <sys/select.h> >+],[ >+ select(0, 0, 0, 0, 0); >+],, > LIBS="$LIBS -lnet -lnsl" > AC_CHECKING(select with $LIBS) >-AC_TRY_LINK(,[select(0, 0, 0, 0, 0);],, >+AC_TRY_LINK( >+[#include <sys/select.h> >+],[ >+ select(0, 0, 0, 0, 0); >+],, > AC_MSG_ERROR(!!! no select - no screen)) > ) > dnl > dnl **** FIFO tests **** > dnl >@@ -314,11 +332,11 @@ AC_TRY_RUN([ > #define S_IFIFO 0010000 > #endif > > char *fin = "/tmp/conftest$$"; > >-main() >+int main() > { > struct stat stb; > fd_set f; > > (void)alarm(5); >@@ -326,40 +344,40 @@ main() > #ifdef POSIX > if (mkfifo(fin, 0777)) > #else > if (mknod(fin, S_IFIFO|0777, 0)) > #endif >- exit(1); >+ return 1; > if (stat(fin, &stb) || (stb.st_mode & S_IFIFO) != S_IFIFO) >- exit(1); >+ return 1; > close(0); > #ifdef __386BSD__ > /* > * The next test fails under 386BSD, but screen works using fifos. > * Fifos in O_RDWR mode are only used for the BROKEN_PIPE case and for > * the select() configuration test. > */ >- exit(0); >+ return 0; > #endif > if (open(fin, O_RDONLY | O_NONBLOCK)) >- exit(1); >+ return 1; > if (fork() == 0) > { > close(0); > if (open(fin, O_WRONLY | O_NONBLOCK)) >- exit(1); >+ return 1; > close(0); > if (open(fin, O_WRONLY | O_NONBLOCK)) >- exit(1); >+ return 1; > if (write(0, "TEST", 4) == -1) >- exit(1); >- exit(0); >+ return 1; >+ return 0; > } > FD_SET(0, &f); > if (select(1, &f, 0, 0, 0) == -1) >- exit(1); >- exit(0); >+ return 1; >+ return 0; > } > ], AC_NOTE(- your fifos are usable) fifo=1, > AC_NOTE(- your fifos are not usable), > AC_NOTE(- skipping check because we are cross compiling; assuming fifos are usable) fifo=1) > rm -f /tmp/conftest* >@@ -385,30 +403,31 @@ AC_TRY_RUN([ > #define S_IFIFO 0010000 > #endif > > char *fin = "/tmp/conftest$$"; > >+int > main() > { > struct timeval tv; > fd_set f; > > #ifdef POSIX > if (mkfifo(fin, 0600)) > #else > if (mknod(fin, S_IFIFO|0600, 0)) > #endif >- exit(1); >+ return 1; > close(0); > if (open(fin, O_RDONLY|O_NONBLOCK)) >- exit(1); >+ return 1; > FD_SET(0, &f); > tv.tv_sec = 1; > tv.tv_usec = 0; > if (select(1, &f, 0, 0, &tv)) >- exit(1); >- exit(0); >+ return 1; >+ return 0; > } > ], AC_NOTE(- your implementation is ok), > AC_NOTE(- you have a broken implementation) AC_DEFINE(BROKEN_PIPE) fifobr=1, > AC_NOTE(- skipping check because we are cross compiling; assuming fifo implementation is ok)) > rm -f /tmp/conftest* >@@ -432,46 +455,48 @@ AC_TRY_RUN([ > > #include <sys/stat.h> > #include <fcntl.h> > #include <sys/socket.h> > #include <sys/un.h> >+#include <signal.h> > > char *son = "/tmp/conftest$$"; > >+int > main() > { > int s1, s2, l; > struct sockaddr_un a; > fd_set f; > > (void)alarm(5); > if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) >- exit(1); >+ return 1; > a.sun_family = AF_UNIX; > strcpy(a.sun_path, son); > (void) unlink(son); > if (bind(s1, (struct sockaddr *) &a, strlen(son)+2) == -1) >- exit(1); >+ return 1; > if (listen(s1, 2)) >- exit(1); >+ return 1; > if (fork() == 0) > { > if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) > kill(getppid(), 3); > (void)connect(s2, (struct sockaddr *)&a, strlen(son) + 2); > if (write(s2, "HELLO", 5) == -1) > kill(getppid(), 3); >- exit(0); >+ return 0; > } > l = sizeof(a); > close(0); > if (accept(s1, &a, &l)) >- exit(1); >+ return 1; > FD_SET(0, &f); > if (select(1, &f, 0, 0, 0) == -1) >- exit(1); >- exit(0); >+ return 1; >+ return 0; > } > ], AC_NOTE(- your sockets are usable) sock=1, > AC_NOTE(- your sockets are not usable), > AC_NOTE(- skipping check because we are cross compiling; assuming sockets are usable) sock=1) > rm -f /tmp/conftest* >@@ -491,26 +516,27 @@ AC_TRY_RUN([ > #include <sys/socket.h> > #include <sys/un.h> > > char *son = "/tmp/conftest$$"; > >+int > main() > { > int s; > struct stat stb; > struct sockaddr_un a; > if ((s = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) >- exit(0); >+ return 0; > a.sun_family = AF_UNIX; > strcpy(a.sun_path, son); > (void) unlink(son); > if (bind(s, (struct sockaddr *) &a, strlen(son)+2) == -1) >- exit(0); >+ return 0; > if (stat(son, &stb)) >- exit(1); >+ return 1; > close(s); >- exit(0); >+ return 0; > } > ],AC_NOTE(- you are normal), > AC_NOTE(- unix domain sockets are not kept in the filesystem) > AC_DEFINE(SOCK_NOT_IN_FS) socknofs=1, > AC_NOTE(- skipping check because we are cross compiling; assuming sockets are normal)) >@@ -545,122 +571,167 @@ char *nam = "/tmp/conftest$$"; > #endif > #ifndef S_IFIFO > #define S_IFIFO 0010000 > #endif > >+int > main() > { > fd_set f; > > #ifdef __FreeBSD__ > /* From Andrew A. Chernov (ache@astral.msk.su): > * opening RDWR fifo fails in BSD 4.4, but select return values are > * right. > */ >- exit(0); >+ return 0; > #endif > (void)alarm(5); > #ifdef POSIX > if (mkfifo(nam, 0777)) > #else > if (mknod(nam, S_IFIFO|0777, 0)) > #endif >- exit(1); >+ return 1; > close(0); > if (open(nam, O_RDWR | O_NONBLOCK)) >- exit(1); >+ return 1; > if (write(0, "TEST", 4) == -1) >- exit(1); >+ return 1; > > #else > > #include <sys/types.h> > #include <sys/socket.h> > #include <sys/un.h> >+#include <signal.h> > >+int > main() > { > int s1, s2, l; > struct sockaddr_un a; > fd_set f; > > (void)alarm(5); > if ((s1 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) >- exit(1); >+ return 1; > a.sun_family = AF_UNIX; > strcpy(a.sun_path, nam); > (void) unlink(nam); > if (bind(s1, (struct sockaddr *) &a, strlen(nam)+2) == -1) >- exit(1); >+ return 1; > if (listen(s1, 2)) >- exit(1); >+ return 1; > if (fork() == 0) > { > if ((s2 = socket(AF_UNIX, SOCK_STREAM, 0)) == -1) > kill(getppid(), 3); > (void)connect(s2, (struct sockaddr *)&a, strlen(nam) + 2); > if (write(s2, "HELLO", 5) == -1) > kill(getppid(), 3); >- exit(0); >+ return 0; > } > l = sizeof(a); > close(0); > if (accept(s1, (struct sockaddr *)&a, &l)) >- exit(1); >+ return 1; > #endif > > > FD_SET(0, &f); > if (select(1, &f, 0, 0, 0) == -1) >- exit(1); >+ return 1; > if (select(1, &f, &f, 0, 0) != 2) >- exit(1); >- exit(0); >+ return 1; >+ return 0; > } > ],AC_NOTE(- select is ok), > AC_NOTE(- select can't count) AC_DEFINE(SELECT_BROKEN), > AC_NOTE(- skipping check because we are cross compiling; assuming select is ok)) > > dnl > dnl **** termcap or terminfo **** > dnl > AC_CHECKING(for tgetent) >-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,, >+AC_TRY_LINK([ >+ #include <curses.h> >+ #include <term.h> >+], [ >+ tgetent((char *)0, (char *)0); >+],, > olibs="$LIBS" > LIBS="-lcurses $olibs" > AC_CHECKING(libcurses) >-AC_TRY_LINK(,[ >+AC_TRY_LINK([#include <curses.h> >+ #include <term.h> >+],[ > #ifdef __hpux > __sorry_hpux_libcurses_is_totally_broken_in_10_10(); > #else > tgetent((char *)0, (char *)0); > #endif > ],, > LIBS="-ltermcap $olibs" > AC_CHECKING(libtermcap) >-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,, >+AC_TRY_LINK( >+[#include <curses.h> >+ #include <term.h> >+],[ >+ tgetent((char *)0, (char *)0); >+],, > LIBS="-ltermlib $olibs" > AC_CHECKING(libtermlib) >-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,, >+AC_TRY_LINK( >+[#include <curses.h> >+ #include <term.h> >+],[ >+ tgetent((char *)0, (char *)0); >+],, > LIBS="-lncursesw $olibs" > AC_CHECKING(libncursesw) >-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,, >+AC_TRY_LINK( >+[#include <curses.h> >+ #include <term.h> >+],[ >+ tgetent((char *)0, (char *)0); >+],, > LIBS="-ltinfow $olibs" > AC_CHECKING(libtinfow) >-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,, >+AC_TRY_LINK( >+[#include <curses.h> >+ #include <term.h> >+],[ >+ tgetent((char *)0, (char *)0); >+],, > LIBS="-lncurses $olibs" > AC_CHECKING(libncurses) >-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,, >+AC_TRY_LINK( >+[#include <curses.h> >+ #include <term.h> >+],[ >+ tgetent((char *)0, (char *)0); >+],, > LIBS="-ltinfo $olibs" > AC_CHECKING(libtinfo) >-AC_TRY_LINK(,tgetent((char *)0, (char *)0);,, >+AC_TRY_LINK( >+[#include <curses.h> >+ #include <term.h> >+],[ >+ tgetent((char *)0, (char *)0); >+],, > AC_MSG_ERROR(!!! no tgetent - no screen))))))))) > > AC_TRY_RUN([ >+#include <curses.h> >+#include <string.h> >+#include <term.h> >+ >+int > main() > { >- exit(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1); >+ return(strcmp(tgoto("%p1%d", 0, 1), "1") ? 0 : 1); > }], AC_NOTE(- you use the termcap database), > AC_NOTE(- you use the terminfo database) AC_DEFINE(TERMINFO), > AC_NOTE(- skipping check because we are cross compiling; assuming terminfo database is used) AC_DEFINE(TERMINFO)) > AC_CHECKING(ospeed) > AC_TRY_LINK(extern short ospeed;,ospeed=5;,,AC_DEFINE(NEED_OSPEED)) >@@ -677,11 +748,15 @@ fi > > if test "$cross_compiling" = no ; then > AC_CHECKING(for SVR4 ptys) > sysvr4ptys= > if test -c /dev/ptmx ; then >-AC_TRY_LINK([],[ptsname(0);grantpt(0);unlockpt(0);],[AC_DEFINE(HAVE_SVR4_PTYS) >+AC_TRY_LINK([ >+ #include <stdlib.h> >+], [ >+ ptsname(0);grantpt(0);unlockpt(0); >+],[AC_DEFINE(HAVE_SVR4_PTYS) > sysvr4ptys=1]) > fi > fi > > AC_CHECK_FUNCS(getpt) >@@ -733,33 +808,36 @@ AC_CHECKING(default tty permissions/group) > rm -f conftest_grp > AC_TRY_RUN([ > #include <sys/types.h> > #include <sys/stat.h> > #include <stdio.h> >+#include <stdlib.h> >+#include <unistd.h> >+int > main() > { > struct stat sb; > char *x,*ttyname(); > int om, m; > FILE *fp; > >- if (!(x = ttyname(0))) exit(1); >- if (stat(x, &sb)) exit(1); >+ if (!(x = ttyname(0))) return 1; >+ if (stat(x, &sb)) return 1; > om = sb.st_mode; >- if (om & 002) exit(0); >+ if (om & 002) return 0; > m = system("mesg y"); >- if (m == -1 || m == 127) exit(1); >- if (stat(x, &sb)) exit(1); >+ if (m == -1 || m == 127) return 1; >+ if (stat(x, &sb)) return 1; > m = sb.st_mode; >- if (chmod(x, om)) exit(1); >- if (m & 002) exit(0); >- if (sb.st_gid == getgid()) exit(1); >+ if (chmod(x, om)) return 1; >+ if (m & 002) return 0; >+ if (sb.st_gid == getgid()) return 1; > if (!(fp=fopen("conftest_grp", "w"))) >- exit(1); >+ return 1; > fprintf(fp, "%d\n", sb.st_gid); > fclose(fp); >- exit(0); >+ return 0; > } > ],[ > if test -f conftest_grp; then > ptygrp=`cat conftest_grp` > AC_NOTE([- pty mode: $ptymode, group: $ptygrp]) >@@ -869,17 +942,25 @@ AC_CHECKING(for libutil(s)) > test -f /usr/lib/libutils.a && LIBS="$LIBS -lutils" > test -f /usr/lib/libutil.a && LIBS="$LIBS -lutil" > fi > > AC_CHECKING(getloadavg) >-AC_TRY_LINK(,[getloadavg((double *)0, 0);], >+AC_TRY_LINK( >+[ >+ #include <stdlib.h> >+],[ >+ getloadavg((double *)0, 0);], > AC_DEFINE(LOADAV_GETLOADAVG) load=1, > if test "$cross_compiling" = no && test -f /usr/lib/libkvm.a ; then > olibs="$LIBS" > LIBS="$LIBS -lkvm" > AC_CHECKING(getloadavg with -lkvm) >-AC_TRY_LINK(,[getloadavg((double *)0, 0);], >+AC_TRY_LINK( >+[ >+ #include <stdlib.h> >+],[ >+ getloadavg((double *)0, 0);], > AC_DEFINE(LOADAV_GETLOADAVG) load=1, LIBS="$olibs") > fi > ) > > if test -z "$load" ; then >@@ -931,10 +1012,11 @@ else > > $nlist64 > > struct nlist nl[2]; > >+int > main() > { > #if !defined(_AUX_SOURCE) && !defined(AUX) > # ifdef NLIST_NAME_UNION > nl[0].n_un.n_name = "$av"; >@@ -944,12 +1026,12 @@ main() > #else > strncpy(nl[0].n_name, "$av", sizeof(nl[0].n_name)); > #endif > nlist(LOADAV_UNIX, nl); > if (nl[0].n_value == 0) >- exit(1); >- exit(0); >+ return 1; >+ return 0; > } > ],avensym=$av;break) > if test "$av" = _Loadavg; then > nlist64='#define nlist nlist64' > fi >@@ -1068,21 +1150,22 @@ void > hand() > { > got++; > } > >+int > main() > { > /* on hpux we use sigvec to get bsd signals */ > #ifdef __hpux > (void)signal(SIGCLD, hand); > kill(getpid(), SIGCLD); > kill(getpid(), SIGCLD); > if (got < 2) >- exit(1); >+ return 1; > #endif >- exit(0); >+ return 0; > } > ],,AC_DEFINE(SYSVSIGS),:) > > fi > >@@ -1107,14 +1190,22 @@ oldlibs="$LIBS" > LIBS="$LIBS -lsun" > AC_CHECKING(IRIX sun library) > AC_TRY_LINK(,,,LIBS="$oldlibs") > > AC_CHECKING(syslog) >-AC_TRY_LINK(,[closelog();], , [oldlibs="$LIBS" >+AC_TRY_LINK( >+[#include <syslog.h> >+], [ >+ closelog(); >+], , [oldlibs="$LIBS" > LIBS="$LIBS -lbsd" > AC_CHECKING(syslog in libbsd.a) >-AC_TRY_LINK(, [closelog();], AC_NOTE(- found.), [LIBS="$oldlibs" >+AC_TRY_LINK( >+[#include <syslog.h> >+], [ >+ closelog(); >+], AC_NOTE(- found.), [LIBS="$oldlibs" > AC_NOTE(- bad news: syslog missing.) AC_DEFINE(NOSYSLOG)])]) > > AC_EGREP_CPP(YES_IS_DEFINED, > [#ifdef M_UNIX > YES_IS_DEFINED; >@@ -1147,66 +1238,87 @@ fi > dnl AC_CHECK_HEADER(shadow.h, AC_DEFINE(SHADOWPW)) > AC_CHECKING(getspnam) > AC_TRY_LINK([#include <shadow.h>], [getspnam("x");],AC_DEFINE(SHADOWPW)) > > AC_CHECKING(getttyent) >-AC_TRY_LINK(,[getttyent();], AC_DEFINE(GETTTYENT)) >+AC_TRY_LINK( >+[ >+ #include <ttyent.h> >+],[ >+ getttyent(); >+], AC_DEFINE(GETTTYENT)) > > AC_CHECKING(fdwalk) > AC_TRY_LINK([#include <stdlib.h>], [fdwalk(NULL, NULL);],AC_DEFINE(HAVE_FDWALK)) > > AC_CHECKING(whether memcpy/memmove/bcopy handles overlapping arguments) > AC_TRY_RUN([ >+#include <string.h> >+ >+int > main() { > char buf[10]; > strcpy(buf, "abcdefghi"); > bcopy(buf, buf + 2, 3); > if (strncmp(buf, "ababcf", 6)) >- exit(1); >+ return 1; > strcpy(buf, "abcdefghi"); > bcopy(buf + 2, buf, 3); > if (strncmp(buf, "cdedef", 6)) >- exit(1); >- exit(0); /* libc version works properly. */ >+ return 1; >+ return 0; /* libc version works properly. */ > }], AC_DEFINE(USEBCOPY),,:) > > AC_TRY_RUN([ >+#include <string.h> >+ > #define bcopy(s,d,l) memmove(d,s,l) >+int > main() { > char buf[10]; > strcpy(buf, "abcdefghi"); > bcopy(buf, buf + 2, 3); > if (strncmp(buf, "ababcf", 6)) >- exit(1); >+ return 1; > strcpy(buf, "abcdefghi"); > bcopy(buf + 2, buf, 3); > if (strncmp(buf, "cdedef", 6)) >- exit(1); >- exit(0); /* libc version works properly. */ >+ return 1; >+ return 0; /* libc version works properly. */ > }], AC_DEFINE(USEMEMMOVE),, > AC_NOTE(- skipping check because we are cross compiling; use memmove) AC_DEFINE(USEMEMMOVE)) > > > AC_TRY_RUN([ >+#include <string.h> >+ > #define bcopy(s,d,l) memcpy(d,s,l) >+int > main() { > char buf[10]; > strcpy(buf, "abcdefghi"); > bcopy(buf, buf + 2, 3); > if (strncmp(buf, "ababcf", 6)) >- exit(1); >+ return 1; > strcpy(buf, "abcdefghi"); > bcopy(buf + 2, buf, 3); > if (strncmp(buf, "cdedef", 6)) >- exit(1); >- exit(0); /* libc version works properly. */ >+ return 1; >+ return 0; /* libc version works properly. */ > }], AC_DEFINE(USEMEMCPY),,:) > > AC_SYS_LONG_FILE_NAMES > > AC_MSG_CHECKING(for vsprintf) >-AC_TRY_LINK([#include <stdarg.h>],[va_list valist; vsprintf(0,0,valist);], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no)) >+AC_TRY_LINK( >+[ >+ #include <stdarg.h> >+ #include <stdio.h> >+], >+[ >+ va_list valist; vsprintf(0,0,valist); >+], AC_MSG_RESULT(yes);AC_DEFINE(USEVARARGS), AC_MSG_RESULT(no)) > > AC_HEADER_DIRENT > > AC_MSG_CHECKING(for setenv) > if test -z "$ac_setenv_args"; then
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 869371
:
804244
| 804247