================
@@ -0,0 +1,18 @@
+// Check that clang invocation can spawn and handshake with module build daemon
+
+// REQUIRES: !system-windows
+
+//  RUN: if pgrep -f "cc1modbuildd mbd-handshake"; then pkill -f "cc1modbuildd 
mbd-handshake"; fi
+//  RUN: rm -rf mbd-handshake %t
----------------
cpsughrue wrote:

Looks like the header file `un.h`, provided by 
glibc-headers-2.34-60.el9.x86_64, sets the max unix socket address length to 
108 characters.

```cpp
// /usr/include/sys/un.h
/* Structure describing the address of an AF_LOCAL (aka AF_UNIX) socket.  */
struct sockaddr_un
  {
    __SOCKADDR_COMMON (sun_);
    char sun_path[108];         /* Path name.  */
  };
```

`%t` results in a socket address of 
`/home/cpsughrue/repos/llvm-project-fork/build/tools/clang/test/ModuleBuildDaemon/Output/handshake.c.tmp/mbd.sock`
 which is 112 characters. So, in this case, the clang invocation looks to 
communicate over `mbd.sock` under 
`/home/cpsughrue/repos/llvm-project-fork/build/tools/clang/test/ModuleBuildDaemon/Output/handshake.c.tmp`
 but the daemon chops off `.sock` and creates the address `mbd`. 

I can shorten the file name to `hand.c` or use 
`-fmodule-build-daemon=handshake-mbd` which places the socket file at 
`llvm-project/build/tools/clang/test/ModuleBuildDaemon/handshake-mbd/mbd.sock`. 
Any preference?

https://github.com/llvm/llvm-project/pull/67562
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to