Index: fpcsrc/rtl/openbsd/sysnr.inc
===================================================================
--- fpcsrc/rtl/openbsd/sysnr.inc	(revision 23593)
+++ fpcsrc/rtl/openbsd/sysnr.inc	(working copy)
@@ -256,8 +256,9 @@
         syscall_nr_MAXSYSCALL   = 313;
 
 { Aliases }
-        syscall_nr_getdirentries = syscall_nr_ogetdirentries;
+        syscall_nr_getdirentries = syscall_nr_getdirentriesi49;
         syscall_nr_waitpid      = syscall_nr_wait4;  // 7, added: ease of notation purposes
 {        syscall_nr_getdents = syscall_nr_getdirentries; }
 {$define USE_GETDIRENTRIES_SYSCALL}
+{$define USE_GETDIRENTRIES_I49_SYSCALL}
 
Index: fpcsrc/rtl/bsd/ossysc.inc
===================================================================
--- fpcsrc/rtl/bsd/ossysc.inc	(revision 23593)
+++ fpcsrc/rtl/bsd/ossysc.inc	(working copy)
@@ -223,7 +223,12 @@
 function readbuffer:longint;
 
 var retval :longint;
+{$ifdef USE_GETDIRENTRIES_I49_SYSCALL}
+  { OpenBSD i49 getDirEntries system call uses off_t type for last parameter }
+    basep : off_t;
+{$else not USE_GETDIRENTRIES_I49_SYSCALL}
     basep : clong;
+{$endif not USE_GETDIRENTRIES_I49_SYSCALL}
 begin
 {$ifdef USE_GETDIRENTRIES_SYSCALL}
  Retval:=do_syscall(syscall_nr_getdirentries,TSysParam(dirp^.dd_fd),TSysParam(@dirp^.dd_buf^),DIRBLKSIZ {sizeof(getdentsbuffer)},TSysParam(@basep));
