sim-se: Handle empty paths when resolving an "at" path.

When the "path" argument is empty, use the file name of the node
referred to by the fd file descriptor. This matches the behavior of
"at" system calls when the TGT_AT_EMPTY_PATH flag is set. The system
calls themselves are responsible for checking for that flag, and
returning an error if an empty "path" is not allowed.

Change-Id: Ib48d91ff983b3edb6f65e83686b90d79d74f3471
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/53683
Reviewed-by: Giacomo Travaglini <giacomo.travaglini@arm.com>
Maintainer: Giacomo Travaglini <giacomo.travaglini@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
diff --git a/src/sim/syscall_emul.hh b/src/sim/syscall_emul.hh
index c53175b..2f49f5e 100644
--- a/src/sim/syscall_emul.hh
+++ b/src/sim/syscall_emul.hh
@@ -367,7 +367,10 @@
         if (!ffdp)
             return -EBADF;
 
-        path = ffdp->getFileName() + "/" + path;
+        if (path.empty())
+            path = ffdp->getFileName();
+        else
+            path = ffdp->getFileName() + "/" + path;
     }
 
     return 0;