Don't try to use PATH_MAX in the Hurd
authorAlberto Garcia <berto@igalia.com>
Thu, 16 Nov 2023 11:15:08 +0000 (12:15 +0100)
committerAlberto Garcia <berto@igalia.com>
Thu, 16 Nov 2023 11:15:08 +0000 (12:15 +0100)
Bug-Debian: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=978098
Bug: https://bugs.webkit.org/show_bug.cgi?id=219572

===================================================================

Gbp-Pq: Name fix-ftbfs-hurd.patch

Source/WTF/wtf/posix/FileSystemPOSIX.cpp
Source/WebCore/platform/text/hyphen/HyphenationLibHyphen.cpp

index c214c14621f2e51ba572cd022961826837505909..987b3e44c450d39cc93e59c134b3b177d1e7e0bf 100644 (file)
 #include <glib.h>
 #endif
 
+#if OS(HURD)
+#define PATH_MAX 4096
+#endif
+
 namespace WTF {
 
 namespace FileSystemImpl {
index 441728093229a62bb0c97882e231aa103aef097d..a9edb298ad30b20372a8efd1145a9dceda517f3f 100644 (file)
@@ -72,11 +72,21 @@ static void scanDirectoryForDictionaries(const char* directoryPath, HashMap<Atom
             continue;
 
         auto filePath = FileSystem::pathByAppendingComponent(directoryPathString, fileName);
+#if OS(HURD)
+        char *normalizedPath;
+        normalizedPath = realpath(FileSystem::fileSystemRepresentation(filePath).data(), NULL);
+        if (!normalizedPath)
+            continue;
+
+        filePath = FileSystem::stringFromFileSystemRepresentation(normalizedPath);
+        free(normalizedPath);
+#else
         char normalizedPath[PATH_MAX];
         if (!realpath(FileSystem::fileSystemRepresentation(filePath).data(), normalizedPath))
             continue;
 
         filePath = FileSystem::stringFromFileSystemRepresentation(normalizedPath);
+#endif
         availableLocales.add(locale, Vector<String>()).iterator->value.append(filePath);
 
         String localeReplacingUnderscores = makeStringByReplacingAll(locale, '_', '-');