Opened 4 years ago

Last modified 4 years ago

#61168 closed defect

php72-apache2handler 7.2.33_0 does not build — at Initial Version

Reported by: josephsacco Owned by:
Priority: Normal Milestone:
Component: ports Version: 2.6.3
Keywords: Cc:
Port: php

Description

There is a problem building the latest upgrades for php-apache2hander [php72 & php73; php74 is OK] under OS X 10.15.6:

/main/reentrancy.c:139:23: error: too few arguments to function call, expected 3, have 2
        readdir_r(dirp, entry);
        ~~~~~~~~~            ^
/Library/Developer/CommandLineTools/SDKs/MacOSX10.15.sdk/usr/include/dirent.h:110:1: note: 'readdir_r' declared here
int readdir_r(DIR *, struct dirent *, struct dirent **) __DARWIN_INODE64(readdir_r);
^
1 error generated.

Looking at the source code, the problem is here:

#if !defined(HAVE_POSIX_READDIR_R)

PHPAPI int php_readdir_r(DIR *dirp, struct dirent *entry,
        struct dirent **result)
{
#if defined(HAVE_OLD_READDIR_R)
    int ret = 0;

    /* We cannot rely on the return value of readdir_r
       as it differs between various platforms
       (HPUX returns 0 on success whereas Solaris returns non-zero)
     */
    entry->d_name[0] = '\0';
    readdir_r(dirp, entry);

    if (entry->d_name[0] == '\0') {
        *result = NULL;
        ret = errno;
    } else {
        *result = entry;
    }
    return ret;
#else
    struct dirent *ptr;
    int ret = 0;

    local_lock(READDIR_R);

    errno = 0;

    ptr = readdir(dirp);

    if (!ptr && errno != 0)
        ret = errno;

    if (ptr)
        memcpy(entry, ptr, sizeof(*ptr));

    *result = ptr;

    local_unlock(READDIR_R);

    return ret;
#endif}}}


-Joseph

Change History (0)

Note: See TracTickets for help on using tickets.