Opened 12 months ago
Closed 12 months ago
#71261 closed defect (worksforme)
legacy-support-devel @20241104_0: error: passing argument 3 of 'scandir' from incompatible pointer type
| Reported by: | barracuda156 | Owned by: | |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 2.10.4 |
| Keywords: | Cc: | fhgwright (Fred Wright), mascguy (Christopher Nielsen) | |
| Port: | legacy-support-devel |
Description
legacysupport compatibility wrapper for scandir should be used on darwin < 13, but it seems to fail in this case:
FAILED: libgnome-desktop/libgnome-desktop-4.2.dylib.p/gnome-languages.c.o
ccache /opt/local/bin/gcc-mp-14 -Ilibgnome-desktop/libgnome-desktop-4.2.dylib.p -Ilibgnome-desktop -I../gnome-desktop-43.2/libgnome-desktop -I/opt/local/include/LegacySupport -I. -I../gnome-desktop-43.2 -I/opt/local/include/gdk-pixbuf-2.0 -I/opt/local/include/libpng16 -I/opt/local/include/glib-2.0 -I/opt/local/lib/glib-2.0/include -I/opt/local/include/gio-unix-2.0 -I/opt/local/include/gsettings-desktop-schemas -I/opt/local/include/libxml2 -I/opt/local/include -fdiagnostics-color=always -Wall -Winvalid-pch -std=gnu99 -O0 -g -pipe -Os -arch ppc '-DG_LOG_DOMAIN="GnomeDesktop"' -DGDK_DISABLE_DEPRECATION_WARNINGS -DGTK_DISABLE_DEPRECATION_WARNINGS '-DGNOMELOCALEDIR="/opt/local/share/locale"' '-DLIBLOCALEDIR="/opt/local/lib/locale"' '-DISO_CODES_PREFIX="/opt/local"' '-DFONTCONFIG_CACHE_PATH="/opt/local/var/cache/fontconfig"' '-DXKB_BASE="/opt/local/share/X11/xkb"' -MD -MQ libgnome-desktop/libgnome-desktop-4.2.dylib.p/gnome-languages.c.o -MF libgnome-desktop/libgnome-desktop-4.2.dylib.p/gnome-languages.c.o.d -o libgnome-desktop/libgnome-desktop-4.2.dylib.p/gnome-languages.c.o -c ../gnome-desktop-43.2/libgnome-desktop/gnome-languages.c
../gnome-desktop-43.2/libgnome-desktop/gnome-languages.c: In function 'collect_locales_from_directory':
../gnome-desktop-43.2/libgnome-desktop/gnome-languages.c:471:53: error: passing argument 3 of 'scandir' from incompatible pointer type [-Wincompatible-pointer-types]
471 | ndirents = scandir (LIBLOCALEDIR, &dirents, select_dirs, alphasort);
| ^~~~~~~~~~~
| |
| int (*)(const struct dirent *)
In file included from /opt/local/include/LegacySupport/dirent.h:27,
from ../gnome-desktop-43.2/libgnome-desktop/gnome-languages.c:30:
/usr/include/dirent.h:119:5: note: expected 'int (*)(struct dirent *)' but argument is of type 'int (*)(const struct dirent *)'
119 | int (*)(struct dirent *), int (*)(const void *, const void *)) __DARWIN_INODE64(scandir);
| ^~~~~~~~~~~~~~~~~~~~~~~~
Change History (7)
comment:1 Changed 12 months ago by mascguy (Christopher Nielsen)
| Cc: | mascguy added |
|---|
comment:2 follow-up: 3 Changed 12 months ago by fhgwright (Fred Wright)
comment:3 follow-up: 7 Changed 12 months ago by barracuda156
comment:4 Changed 12 months ago by fhgwright (Fred Wright)
Note that that definition should be harmless in OS versions that don't need it, and even in non-Mac OSes. So putting it in the source might be accepted upstream if they don't object to the clutter.
comment:5 follow-up: 6 Changed 12 months ago by ryandesign (Ryan Carsten Schmidt)
I don't think we should be suggesting that upstream projects add MacPorts-specific code. We can easily add preprocessor definitions in Portfiles or in the legacy support portgroup.
comment:6 Changed 12 months ago by fhgwright (Fred Wright)
Replying to ryandesign:
I don't think we should be suggesting that upstream projects add MacPorts-specific code. We can easily add preprocessor definitions in Portfiles or in the legacy support portgroup.
Upstream code often includes OS-specific code far more significant than a one-line #define.
comment:7 Changed 12 months ago by mascguy (Christopher Nielsen)
| Resolution: | → worksforme |
|---|---|
| Status: | new → closed |
Replying to barracuda156:
Replying to fhgwright:
Did you define
_MACPORTS_LEGACY_COMPATIBLE_SCANDIRnonzero before the includes?Thank you, I missed that. It worked, ticket can be closed.
Great, glad it's resolved Sergey!

Did you define
_MACPORTS_LEGACY_COMPATIBLE_SCANDIRnonzero before the includes?See #70702#comment:1