Opened 3 years ago

Closed 3 years ago

Last modified 3 years ago

#61753 closed defect (fixed)

libast: error: implicitly declaring library function 'strlen'

Reported by: rsmacleod (Rob MacLeod) Owned by: ryandesign (Ryan Carsten Schmidt)
Priority: Normal Milestone:
Component: ports Version:
Keywords: catalina bigsur Cc:
Port: libast

Description (last modified by ryandesign (Ryan Carsten Schmidt))

Hi, I am upgrading a Mac Mini to Bigsur and most of my fresh installs from MacPorts are working fine, except for Eterm. I get a crash while making libist.

Looks like some compiler problems:

:info:build snprintf.c:45:22: error: unknown type name 'size_t' 
                
:info:build vsnprintf(char *str, size_t count, const char *fmt, va_list args)  
 
:info:build          
            ^                                              
:info:build snprintf.c:53:13: error: implicitly declaring library function 'strlen' with type 'unsigned long (const char *)' [-Werror,-Wimplicit-function-declaration]                                                                        
:info:build     return (strlen(str));                                           
:info:build             ^                                                       
:info:build snprintf.c:53:13: note: include the header <string.h> or explicitly provide a declaration for 'strlen'                                             
:info:build snprintf.c:58:21: error: unknown type name 'size_t'                 
:info:build snprintf(char *str, size_t count, const char *fmt, ...)             
:info:build                     ^                                               

Thanks in advance for your help.
Rob (U of Utah)

Attachments (2)

libast-error.log (97.4 KB) - added by rsmacleod (Rob MacLeod) 3 years ago.
log file from failed make on libast
eterm-main.log (239.1 KB) - added by rsmacleod (Rob MacLeod) 3 years ago.
Error log from Eterm

Download all attachments as: .zip

Change History (9)

Changed 3 years ago by rsmacleod (Rob MacLeod)

Attachment: libast-error.log added

log file from failed make on libast

comment:1 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Description: modified (diff)
Keywords: catalina bigsur added; libast Eterm removed
Priority: HighNormal
Summary: Eterm installation on BigSur failing on libastlibast: error: implicitly declaring library function 'strlen'

Yup, the well-known implicit function declaration problem we see with tons of ports as of Xcode 12. Needs to be fixed by including the right headers.

comment:2 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Owner: set to ryandesign
Status: newaccepted

comment:3 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Resolution: fixed
Status: acceptedclosed

In cfe5796949996f68826572e3ef4b534624eac432/macports-ports (master):

libast: Update to 0.8

Update to 0.8 and fix implicit declaration of functions.

Closes: #61753

comment:4 Changed 3 years ago by rsmacleod (Rob MacLeod)

Thanks Ryan! Will this update get pushed to the release side or how can I grab it. The default is still 0.7_5:

--->  Attempting to fetch libast-0.7_5.darwin_20.x86_64.tbz2 from https://cph.dk.packages.macports.org/libast
--->  Building libast
Error: Failed to build libast: command execution failed
Error: See /opt/local/var/macports/logs/_opt_local_var_macports_sources_rsync.macports.org_macports_release_tarballs_ports_devel_libast/libast/main.log for details.
Error: Follow https://guide.macports.org/#project.tickets to report a bug.
Error: Processing of port libast failed

Cheers,
Rob

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

Changed 3 years ago by rsmacleod (Rob MacLeod)

Attachment: eterm-main.log added

Error log from Eterm

comment:5 Changed 3 years ago by rsmacleod (Rob MacLeod)

Sorry, found the new version after a selfupdate. But now there is still an Eterm error, related to libast?

:info:build In file included from ./feature.h:100:
:info:build /opt/local/include/libast.h:38:10: fatal error: 'libast/sysdefs.h' file not found
:info:build #include <libast/sysdefs.h>

Error log attached now.
Cheers,
Rob

Last edited 3 years ago by ryandesign (Ryan Carsten Schmidt) (previous) (diff)

comment:6 in reply to:  5 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

Replying to rsmacleod:

Will this update get pushed to the release side or how can I grab it. The default is still 0.7_5:

Commits to the ports tree get synced to the public rsync server within about an hour.

Replying to rsmacleod:

But now there is still an Eterm error, related to libast?

Looks like that's this issue which was fixed after the release of 0.8. I'll add a patch to the port for that. In the future, please file new tickets about new issues.

comment:7 Changed 3 years ago by ryandesign (Ryan Carsten Schmidt)

In cfad707cd42d4ff7733198843eade30d306eabc3/macports-ports (master):

libast: Fix install location of sysdefs.h/types.h

See: #61753

Note: See TracTickets for help on using tickets.