50641: use 'int main()' in test C-codes in configure

master
Nicholas Vinson 2 years ago committed by Jun-ichi Takimoto
parent 4fc5dc0292
commit ab4d62eb97

@ -1,3 +1,8 @@
2022-09-21 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
* Nicholas Vinson: 50641: aczsh.m4, configure.ac: use 'int main()'
in test C-codes in configure
2022-09-15 Jun-ichi Takimoto <takimoto-j@kba.biglobe.ne.jp>
* 50629: Test/D07multibyte.ztst, Test/E01options.ztst,

@ -44,6 +44,7 @@ AC_DEFUN(zsh_64_BIT_TYPE,
#include <sys/types.h>
#endif
int
main()
{
$1 foo = 0;
@ -118,7 +119,6 @@ AC_TRY_COMMAND($DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS
AC_TRY_COMMAND($CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&AS_MESSAGE_LOG_FD) &&
AC_TRY_COMMAND($DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&AS_MESSAGE_LOG_FD); then
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdlib.h>
#ifdef HPUX10DYNAMIC
#include <dl.h>
#define RTLD_LAZY BIND_DEFERRED
@ -146,29 +146,30 @@ char *zsh_gl_sym_addr ;
#define RTLD_GLOBAL 0
#endif
int
main()
{
void *handle1, *handle2;
void *(*zsh_getaddr1)(), *(*zsh_getaddr2)();
void *sym1, *sym2;
handle1 = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle1) exit(1);
if(!handle1) return(1);
handle2 = dlopen("./conftest2.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle2) exit(1);
if(!handle2) return(1);
zsh_getaddr1 = (void *(*)()) dlsym(handle1, "${us}zsh_getaddr1");
zsh_getaddr2 = (void *(*)()) dlsym(handle2, "${us}zsh_getaddr2");
sym1 = zsh_getaddr1();
sym2 = zsh_getaddr2();
if(!sym1 || !sym2) exit(1);
if(sym1 != sym2) exit(1);
if(!sym1 || !sym2) return(1);
if(sym1 != sym2) return(1);
dlclose(handle1);
handle1 = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle1) exit(1);
if(!handle1) return(1);
zsh_getaddr1 = (void *(*)()) dlsym(handle1, "${us}zsh_getaddr1");
sym1 = zsh_getaddr1();
if(!sym1) exit(1);
if(sym1 != sym2) exit(1);
exit(0);
if(!sym1) return(1);
if(sym1 != sym2) return(1);
return(0);
}
]])],[zsh_cv_shared_$1=yes],
[zsh_cv_shared_$1=no],
@ -200,7 +201,6 @@ AC_TRY_COMMAND($DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS
AC_TRY_COMMAND($CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&AS_MESSAGE_LOG_FD) &&
AC_TRY_COMMAND($DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&AS_MESSAGE_LOG_FD); then
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdlib.h>
#ifdef HPUX10DYNAMIC
#include <dl.h>
#define RTLD_LAZY BIND_DEFERRED
@ -228,19 +228,19 @@ char *zsh_gl_sym_addr ;
#define RTLD_GLOBAL 0
#endif
int
main()
{
void *handle1, *handle2;
int (*fred1)(), (*fred2)();
handle1 = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle1) exit(1);
if(!handle1) return(1);
handle2 = dlopen("./conftest2.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle2) exit(1);
if(!handle2) return(1);
fred1 = (int (*)()) dlsym(handle1, "${us}fred");
fred2 = (int (*)()) dlsym(handle2, "${us}fred");
if(!fred1 || !fred2) exit(1);
exit((*fred1)() != 42 || (*fred2)() != 69);
if(!fred1 || !fred2) return(1);
return((*fred1)() != 42 || (*fred2)() != 69);
}
]])],[zsh_cv_sys_dynamic_clash_ok=yes],
[zsh_cv_sys_dynamic_clash_ok=no],
@ -276,7 +276,6 @@ AC_TRY_COMMAND($DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS
AC_TRY_COMMAND($CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest2.c 1>&AS_MESSAGE_LOG_FD) &&
AC_TRY_COMMAND($DLLD -o conftest2.$DL_EXT $LDFLAGS $DLLDFLAGS conftest2.o $LIBS 1>&AS_MESSAGE_LOG_FD); then
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdlib.h>
#ifdef HPUX10DYNAMIC
#include <dl.h>
#define RTLD_LAZY BIND_DEFERRED
@ -304,17 +303,18 @@ char *zsh_gl_sym_addr ;
#define RTLD_GLOBAL 0
#endif
int
main()
{
void *handle;
int (*barneysym)();
handle = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle) exit(1);
if(!handle) return(1);
handle = dlopen("./conftest2.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle) exit(1);
if(!handle) return(1);
barneysym = (int (*)()) dlsym(handle, "${us}barney");
if(!barneysym) exit(1);
exit((*barneysym)() != 69);
if(!barneysym) return(1);
return((*barneysym)() != 69);
}
]])],[zsh_cv_sys_dynamic_rtld_global=yes],
[zsh_cv_sys_dynamic_rtld_global=no],
@ -346,7 +346,6 @@ AC_TRY_COMMAND($DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS conftest1.o $LIBS
save_ldflags=$LDFLAGS
LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdlib.h>
#ifdef HPUX10DYNAMIC
#include <dl.h>
#define RTLD_LAZY BIND_DEFERRED
@ -374,15 +373,16 @@ char *zsh_gl_sym_addr ;
#define RTLD_GLOBAL 0
#endif
int
main()
{
void *handle;
int (*barneysym)();
handle = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle) exit(1);
if(!handle) return(1);
barneysym = (int (*)()) dlsym(handle, "${us}barney");
if(!barneysym) exit(1);
exit((*barneysym)() != 69);
if(!barneysym) return(1);
return((*barneysym)() != 69);
}
int fred () { return 42; }
@ -420,7 +420,6 @@ elif
save_ldflags=$LDFLAGS
LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS -s"
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdlib.h>
#ifdef HPUX10DYNAMIC
#include <dl.h>
#define RTLD_LAZY BIND_DEFERRED
@ -448,15 +447,16 @@ char *zsh_gl_sym_addr ;
#define RTLD_GLOBAL 0
#endif
int
main()
{
void *handle;
int (*barneysym)();
handle = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle) exit(1);
if(!handle) return(1);
barneysym = (int (*)()) dlsym(handle, "${us}barney");
if(!barneysym) exit(1);
exit((*barneysym)() != 69);
if(!barneysym) return(1);
return((*barneysym)() != 69);
}
int fred () { return 42; }
@ -488,7 +488,6 @@ echo 'int fred () { return 42; }' > conftest1.c
if AC_TRY_COMMAND($CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest1.c 1>&AS_MESSAGE_LOG_FD) &&
AC_TRY_COMMAND($DLLD -o conftest1.$DL_EXT $LDFLAGS $DLLDFLAGS -s conftest1.o $LIBS 1>&AS_MESSAGE_LOG_FD); then
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdlib.h>
#ifdef HPUX10DYNAMIC
#include <dl.h>
#define RTLD_LAZY BIND_DEFERRED
@ -516,15 +515,16 @@ char *zsh_gl_sym_addr ;
#define RTLD_GLOBAL 0
#endif
int
main()
{
void *handle;
int (*fredsym)();
handle = dlopen("./conftest1.$DL_EXT", RTLD_LAZY | RTLD_GLOBAL);
if(!handle) exit(1);
if(!handle) return(1);
fredsym = (int (*)()) dlsym(handle, "${us}fred");
if(!fredsym) exit(1);
exit((*fredsym)() != 42);
if(!fredsym) return(1);
return((*fredsym)() != 42);
}
]])],[zsh_cv_sys_dynamic_strip_lib=yes],
[zsh_cv_sys_dynamic_strip_lib=no],

@ -585,7 +585,7 @@ fi
dnl Checking if compiler correctly cast signed to unsigned.
AC_CACHE_CHECK(if signed to unsigned casting is broken,
zsh_cv_c_broken_signed_to_unsigned_casting,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[main(){return((int)(unsigned char)((char) -1) == 255);}]])],[zsh_cv_c_broken_signed_to_unsigned_casting=yes],[zsh_cv_c_broken_signed_to_unsigned_casting=no],[zsh_cv_c_broken_signed_to_unsigned_casting=no])])
[AC_RUN_IFELSE([AC_LANG_SOURCE([[int main(){return((int)(unsigned char)((char) -1) == 255);}]])],[zsh_cv_c_broken_signed_to_unsigned_casting=yes],[zsh_cv_c_broken_signed_to_unsigned_casting=no],[zsh_cv_c_broken_signed_to_unsigned_casting=no])])
AH_TEMPLATE([BROKEN_SIGNED_TO_UNSIGNED_CASTING],
[Define to 1 if compiler incorrectly cast signed to unsigned.])
if test x$zsh_cv_c_broken_signed_to_unsigned_casting = xyes; then
@ -1046,7 +1046,7 @@ else
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <sys/types.h>
main() { return sizeof(off_t) < 8; }
int main() { return sizeof(off_t) < 8; }
]])],[zsh_cv_off_t_is_64_bit=yes],[zsh_cv_off_t_is_64_bit=no],[zsh_cv_off_t_is_64_bit=no])])
if test x$zsh_cv_off_t_is_64_bit = xyes; then
AC_DEFINE(OFF_T_IS_64_BIT)
@ -1056,7 +1056,7 @@ main() { return sizeof(off_t) < 8; }
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <sys/types.h>
main() { return sizeof(ino_t) < 8; }
int main() { return sizeof(ino_t) < 8; }
]])],[zsh_cv_ino_t_is_64_bit=yes],[zsh_cv_ino_t_is_64_bit=no],[zsh_cv_ino_t_is_64_bit=no])])
if test x$zsh_cv_ino_t_is_64_bit = xyes; then
AC_DEFINE(INO_T_IS_64_BIT)
@ -1369,7 +1369,7 @@ zsh_cv_func_realpath_accepts_null,
#include <stdlib.h>
#include <limits.h>
],[
exit(!realpath("/", (char*)0));
return(!realpath("/", (char*)0));
])],
[zsh_cv_func_realpath_accepts_null=yes],
[zsh_cv_func_realpath_accepts_null=no],
@ -1393,10 +1393,9 @@ AC_CACHE_CHECK(if tgetent accepts NULL,
zsh_cv_func_tgetent_accepts_null,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <fcntl.h>
#include <stdlib.h>
int tgetent(char *, char *);
char *tgetstr(char *, char **);
main()
int main()
{
char buf[4096];
int r1 = tgetent(buf, "vt100");
@ -1407,7 +1406,7 @@ main()
tgetstr("cl", &u);
creat("conftest.tgetent", 0640);
}
exit((r1 != r2) || r2 == -1);
return((r1 != r2) || r2 == -1);
}
]])],[if test -f conftest.tgetent; then
zsh_cv_func_tgetent_accepts_null=yes
@ -1421,10 +1420,9 @@ AC_CACHE_CHECK(if tgetent returns 0 on success,
zsh_cv_func_tgetent_zero_success,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <fcntl.h>
#include <stdlib.h>
int tgetent(char *, char*);
char *tgetstr(char *, char **);
main()
int main()
{
char buf[4096];
int r1 = tgetent(buf, "!@#$%^&*");
@ -1435,7 +1433,7 @@ main()
tgetstr("cl", &u);
creat("conftest.tgetent0", 0640);
}
exit(r1 == r2);
return(r1 == r2);
}
]])],[if test -f conftest.tgetent0; then
zsh_cv_func_tgetent_zero_success=yes
@ -1869,8 +1867,7 @@ zsh_cv_rlim_t_is_longer,
#include <sys/time.h>
#endif
#include <sys/resource.h>
#include <stdlib.h>
main(){struct rlimit r;exit(sizeof(r.rlim_cur) <= sizeof(long));}]])],[zsh_cv_rlim_t_is_longer=yes],[zsh_cv_rlim_t_is_longer=no],[zsh_cv_rlim_t_is_longer=yes])])
int main(){struct rlimit r;return(sizeof(r.rlim_cur) <= sizeof(long));}]])],[zsh_cv_rlim_t_is_longer=yes],[zsh_cv_rlim_t_is_longer=no],[zsh_cv_rlim_t_is_longer=yes])])
if test x$zsh_cv_rlim_t_is_longer = xyes; then
AC_CACHE_CHECK(if rlim_t is a quad,
zsh_cv_rlim_t_is_quad_t,
@ -1880,13 +1877,12 @@ if test x$zsh_cv_rlim_t_is_longer = xyes; then
#endif
#include <stdio.h>
#include <sys/resource.h>
#include <stdlib.h>
main() {
int main() {
struct rlimit r;
char buf[20];
r.rlim_cur = 0;
sprintf(buf, "%qd", r.rlim_cur);
exit(strcmp(buf, "0"));
return(strcmp(buf, "0"));
}]])],[zsh_cv_rlim_t_is_quad_t=yes],[zsh_cv_rlim_t_is_quad_t=no],[zsh_cv_rlim_t_is_quad_t=no])])
if test x$zsh_cv_rlim_t_is_quad_t = xyes; then
AC_DEFINE(RLIM_T_IS_QUAD_T)
@ -1903,8 +1899,7 @@ else
#include <sys/time.h>
#endif
#include <sys/resource.h>
#include <stdlib.h>
main(){struct rlimit r;r.rlim_cur=-1;exit(r.rlim_cur<0);}]])],[zsh_cv_type_rlim_t_is_unsigned=yes],[zsh_cv_type_rlim_t_is_unsigned=no],[zsh_cv_type_rlim_t_is_unsigned=no])])
int main(){struct rlimit r;r.rlim_cur=-1;return(r.rlim_cur<0);}]])],[zsh_cv_type_rlim_t_is_unsigned=yes],[zsh_cv_type_rlim_t_is_unsigned=no],[zsh_cv_type_rlim_t_is_unsigned=no])])
if test x$zsh_cv_type_rlim_t_is_unsigned = xyes; then
AC_DEFINE(RLIM_T_IS_UNSIGNED)
DEFAULT_RLIM_T="unsigned $DEFAULT_RLIM_T"
@ -2187,9 +2182,8 @@ zsh_cv_sys_fifo,
#include <fcntl.h>
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/stat.h>
main()
int main()
{
char c;
int fd;
@ -2200,18 +2194,18 @@ main()
#else
if(mknod("/tmp/fifo$$", 0010600, 0) < 0)
#endif
exit(1);
return(1);
pid = fork();
if(pid < 0)
exit(1);
return(1);
if(pid) {
fd = open("/tmp/fifo$$", O_RDONLY);
exit(fd < 0 || read(fd, &c, 1) != 1 || c != 'x');
return(fd < 0 || read(fd, &c, 1) != 1 || c != 'x');
}
fd = open("/tmp/fifo$$", O_WRONLY);
ret = (fd < 0 || write(fd, "x", 1) < 1);
unlink("/tmp/fifo$$");
exit(ret);
return(ret);
}
]])],[zsh_cv_sys_fifo=yes],[zsh_cv_sys_fifo=no],[zsh_cv_sys_fifo=yes])
])
@ -2289,8 +2283,7 @@ zsh_cv_sys_link,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
main()
int main()
{
int ret;
char *tmpfile, *newfile;
@ -2299,11 +2292,11 @@ main()
unlink(tmpfile);
unlink(newfile);
if(creat(tmpfile, 0644) < 0)
exit(1);
return(1);
ret = link(tmpfile, newfile);
unlink(tmpfile);
unlink(newfile);
exit(ret<0);
return(ret<0);
}
]])],[zsh_cv_sys_link=yes],[zsh_cv_sys_link=no],[zsh_cv_sys_link=yes])])
AH_TEMPLATE([HAVE_LINK],
@ -2322,12 +2315,11 @@ zsh_cv_sys_killesrch,
#include <unistd.h>
#include <signal.h>
#include <errno.h>
#include <stdlib.h>
main()
int main()
{
int pid = (getpid() + 10000) & 0xffffff;
while (pid && (kill(pid, 0) == 0 || errno != ESRCH)) pid >>= 1;
exit(errno!=ESRCH);
return(errno!=ESRCH);
}
]])],[zsh_cv_sys_killesrch=yes],[zsh_cv_sys_killesrch=no],[zsh_cv_sys_killesrch=yes])])
AH_TEMPLATE([BROKEN_KILL_ESRCH],
@ -2348,12 +2340,11 @@ if test x$signals_style = xPOSIX_SIGNALS; then
[AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <signal.h>
#include <unistd.h>
#include <stdlib.h>
int child=0;
void handler(sig)
int sig;
{if(sig==SIGCHLD) child=1;}
main() {
int main() {
struct sigaction act;
sigset_t set;
int pid, ret;
@ -2368,7 +2359,7 @@ main() {
if(pid>0) {
sigemptyset(&set);
ret=sigsuspend(&set);
exit(child==0);
return(child==0);
}
}
]])],[zsh_cv_sys_sigsuspend=yes],[zsh_cv_sys_sigsuspend=no],[zsh_cv_sys_sigsuspend=yes])])
@ -2400,15 +2391,14 @@ case "x$zsh_working_tcsetpgrp" in
#include <sys/types.h>
#include <unistd.h>
#include <fcntl.h>
#include <stdlib.h>
main() {
int main() {
int fd;
int ret;
fd=open("/dev/tty", O_RDWR);
if (fd < 0) exit(2);
if (fd < 0) return(2);
ret=tcsetpgrp(fd, tcgetpgrp(fd));
if (ret < 0) exit(1);
exit(0);
if (ret < 0) return(1);
return(0);
}
]])],[zsh_cv_sys_tcsetpgrp=yes],[
case $? in
@ -2448,7 +2438,7 @@ if test x$ac_cv_func_getpwnam = xyes; then
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
main() {
int main() {
struct passwd *pw1, *pw2;
char buf[1024], name[1024];
sprintf(buf, "%d:%d", getpid(), rand());
@ -2456,7 +2446,7 @@ main() {
if (pw1) strcpy(name, pw1->pw_name);
sprintf(buf, "%d:%d", rand(), getpid());
pw2=getpwnam(buf);
exit(pw1!=0 && pw2!=0 && !strcmp(name, pw2->pw_name));
return(pw1!=0 && pw2!=0 && !strcmp(name, pw2->pw_name));
}
]])],[zsh_cv_sys_getpwnam_faked=no],[zsh_cv_sys_getpwnam_faked=yes],[zsh_cv_sys_getpwnam_faked=no])])
if test x$zsh_cv_sys_getpwnam_faked = xyes; then
@ -2775,20 +2765,17 @@ elif test "x$dynamic" = xyes; then
zsh_cv_sys_elf,
[AC_RUN_IFELSE([AC_LANG_SOURCE([[/* Test for whether ELF binaries are produced */
#include <fcntl.h>
#include <stdlib.h>
#include <unistd.h>
main(argc, argv)
int argc;
char *argv[];
int main(int argc, char *argv[])
{
char b[4];
int i = open(argv[0],O_RDONLY);
if(i == -1)
exit(1); /* fail */
return(1); /* fail */
if(read(i,b,4)==4 && b[0]==127 && b[1]=='E' && b[2]=='L' && b[3]=='F')
exit(0); /* succeed (yes, it's ELF) */
return(0); /* succeed (yes, it's ELF) */
else
exit(1); /* fail */
return(1); /* fail */
}]])],[zsh_cv_sys_elf=yes],[zsh_cv_sys_elf=no],[zsh_cv_sys_elf=yes])])
# We use [0-9]* in case statements, so need to change quoting
@ -2924,13 +2911,12 @@ LDFLAGS="$old_LDFLAGS")
AC_CACHE_CHECK(if your dlsym() needs a leading underscore,
zsh_cv_func_dlsym_needs_underscore,
[echo failed >conftestval && cat >conftest.c <<EOM
fred () { }
void fred () { }
EOM
AC_TRY_COMMAND($CC -c $CFLAGS $CPPFLAGS $DLCFLAGS conftest.c 1>&AS_MESSAGE_LOG_FD) &&
AC_TRY_COMMAND($DLLD $LDFLAGS $DLLDFLAGS -o conftest.$DL_EXT conftest.o 1>&AS_MESSAGE_LOG_FD) &&
AC_RUN_IFELSE([AC_LANG_SOURCE([[
#include <stdio.h>
#include <stdlib.h>
#ifdef HPUX10DYNAMIC
#include <dl.h>
#define RTLD_LAZY BIND_DEFERRED
@ -2957,16 +2943,16 @@ char *zsh_gl_sym_addr ;
extern int fred() ;
main()
int main()
{
void * handle ;
void * symbol ;
FILE *f=fopen("conftestval", "w");
if (!f) exit(1);
if (!f) return(1);
handle = dlopen("./conftest.$DL_EXT", RTLD_LAZY) ;
if (handle == NULL) {
fprintf (f, "dlopen failed") ;
exit(1);
return(1);
}
symbol = dlsym(handle, "fred") ;
if (symbol == NULL) {
@ -2974,13 +2960,13 @@ main()
symbol = dlsym(handle, "_fred") ;
if (symbol == NULL) {
fprintf (f, "dlsym failed") ;
exit(1);
return(1);
}
fprintf (f, "yes") ;
}
else
fprintf (f, "no") ;
exit(0);
return(0);
}]])],[zsh_cv_func_dlsym_needs_underscore=`cat conftestval`],[zsh_cv_func_dlsym_needs_underscore=failed
dynamic=no],[zsh_cv_func_dlsym_needs_underscore=no])])
if test "x$zsh_cv_func_dlsym_needs_underscore" = xyes; then

Loading…
Cancel
Save