Skip to content

Commit

Permalink
libc/lib_utsname: Store version number for debugging and preventing o…
Browse files Browse the repository at this point in the history
…ptimization

In order to directly read the version information of the current file from elf or bin files, memory files, etc., for easy debugging and one-to-one correspondence.

Signed-off-by: wangmingrong1 <[email protected]>
  • Loading branch information
W-M-R committed Oct 11, 2024
1 parent 2f26323 commit 1a30f30
Showing 1 changed file with 18 additions and 15 deletions.
33 changes: 18 additions & 15 deletions libs/libc/misc/lib_utsname.c
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,20 @@
#include <nuttx/version.h>
#include <unistd.h>

/****************************************************************************
* Private Data
****************************************************************************/

static char g_sysname[] = "NuttX";
static char g_machine[] = CONFIG_ARCH;
static char g_release[] = CONFIG_VERSION_STRING;

#if defined(__DATE__) && defined(__TIME__)
static char g_version[] = CONFIG_VERSION_BUILD " " __DATE__ " " __TIME__;
#else
static char g_version[] = CONFIG_VERSION_BUILD;
#endif

/****************************************************************************
* Public Functions
****************************************************************************/
Expand Down Expand Up @@ -83,26 +97,15 @@ int uname(FAR struct utsname *name)
{
int ret = 0;

/* Copy the strings. Assure that each is NUL terminated. */

strlcpy(name->sysname, "NuttX", sizeof(name->sysname));

/* Get the hostname */

ret = gethostname(name->nodename, HOST_NAME_MAX);
name->nodename[HOST_NAME_MAX - 1] = '\0';

strlcpy(name->release, CONFIG_VERSION_STRING, sizeof(name->release));

#if defined(__DATE__) && defined(__TIME__) && \
!defined(CONFIG_LIBC_UNAME_DISABLE_TIMESTAMP)
snprintf(name->version, VERSION_NAMELEN, "%s %s %s",
CONFIG_VERSION_BUILD, __DATE__, __TIME__);
#else
strlcpy(name->version, CONFIG_VERSION_BUILD, sizeof(name->version));
#endif

strlcpy(name->machine, CONFIG_ARCH, sizeof(name->machine));
strlcpy(name->sysname, g_sysname, sizeof(name->sysname));
strlcpy(name->release, g_release, sizeof(name->release));
strlcpy(name->version, g_version, sizeof(name->version));
strlcpy(name->machine, g_machine, sizeof(name->machine));

return ret;
}

0 comments on commit 1a30f30

Please sign in to comment.