emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Portability Question


From: Evan Klitzke
Subject: Portability Question
Date: Tue, 19 May 2020 20:19:38 -0700
User-agent: mu4e 1.4.4; emacs 26.3

I am (hopefully) a new Emacs contributor and I started working on some changes to Emacs that I would like to contribute as patches, and I have some questions about writing platform specific code in Emacs. I'm adding new code in sysdep.c and want to know the best practices.

The first question I have is which standard POSIX headers it's safe to assume are available. The reason I ask this is that sysdep.c already includes <unistd.h> without a HAVE_UNISTD_H check, which implies to me that there's already a requirement on having POSIX headers available (i.e. I assume on Windows Cygwin is required to build?). But, somewhat confusingly, when sysdep.c includes <pwd.h> it uses a HAVE_PWD_H guard, even though this is a standard POSIX header.

Another question I have is: in practice, which build configurations for Emacs are likely to link against glibc vs another libc (e.g. I see there are a number of checks to see if __UCLIBC__ is defined, so at a minimum that's a possibility). For example, do the various macos builds (e.g. emacsformacosx.com and homebrew) typically use glibc or the macos system libc? And same question for Windows. The reason I'm asking is if I opportunistically want to use a glibc extension and fallback to something that works but is hacky if glibc isn't available, I'm wondering in practice which build configurations will have to use the hacky fallback path.

Thanks much.

P.S. I need to sign an FSF copyright assignment agreement (as an individual contributor). Can someone send me the necessary documents?

--
Evan Klitzke                      pgp: 0x157EFCACBC648422
e: address@hidden              w: https://eklitzke.org



reply via email to

[Prev in Thread] Current Thread [Next in Thread]