You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
299 lines
9.1 KiB
299 lines
9.1 KiB
From 690a90a5b7786e40b5447ad7c5f19a7657d27405 Mon Sep 17 00:00:00 2001
|
|
From: Mingli Yu <Mingli.Yu@windriver.com>
|
|
Date: Fri, 14 Dec 2018 17:44:32 +0800
|
|
Subject: [PATCH] Makefile.am: fix undefined function for libnsm.a
|
|
|
|
The source file of libnsm.a uses some function
|
|
in ../support/misc/file.c, add ../support/misc/file.c
|
|
to libnsm_a_SOURCES to fix build error when run
|
|
"make -C tests statdb_dump":
|
|
| ../support/nsm/libnsm.a(file.o): In function `nsm_make_pathname':
|
|
| /usr/src/debug/nfs-utils/2.3.3-r0/nfs-utils-2.3.3/support/nsm/file.c:175: undefined reference to `generic_make_pathname'
|
|
| /usr/src/debug/nfs-utils/2.3.3-r0/nfs-utils-2.3.3/support/nsm/file.c:175: undefined reference to `generic_make_pathname'
|
|
| /usr/src/debug/nfs-utils/2.3.3-r0/nfs-utils-2.3.3/support/nsm/file.c:175: undefined reference to `generic_make_pathname'
|
|
| ../support/nsm/libnsm.a(file.o): In function `nsm_setup_pathnames':
|
|
| /usr/src/debug/nfs-utils/2.3.3-r0/nfs-utils-2.3.3/support/nsm/file.c:280: undefined reference to `generic_setup_basedir'
|
|
| collect2: error: ld returned 1 exit status
|
|
|
|
As there is already one source file named file.c
|
|
as support/nsm/file.c in support/nsm/Makefile.am,
|
|
so rename ../support/misc/file.c to ../support/misc/misc.c.
|
|
|
|
Upstream-Status: Submitted[https://marc.info/?l=linux-nfs&m=154502780423058&w=2]
|
|
|
|
Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
|
|
|
|
Rebase it.
|
|
|
|
Signed-off-by: Robert Yang <liezhi.yang@windriver.com>
|
|
---
|
|
support/misc/Makefile.am | 2 +-
|
|
support/misc/file.c | 115 ---------------------------------------------------------------------------------------------------------------
|
|
support/misc/misc.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
support/nsm/Makefile.am | 2 +-
|
|
4 files changed, 113 insertions(+), 117 deletions(-)
|
|
|
|
diff --git a/support/misc/Makefile.am b/support/misc/Makefile.am
|
|
index f9993e3..8b0e9db 100644
|
|
--- a/support/misc/Makefile.am
|
|
+++ b/support/misc/Makefile.am
|
|
@@ -1,7 +1,7 @@
|
|
## Process this file with automake to produce Makefile.in
|
|
|
|
noinst_LIBRARIES = libmisc.a
|
|
-libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c file.c \
|
|
+libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c misc.c \
|
|
nfsd_path.c workqueue.c xstat.c
|
|
|
|
MAINTAINERCLEANFILES = Makefile.in
|
|
diff --git a/support/misc/file.c b/support/misc/file.c
|
|
deleted file mode 100644
|
|
index 06f6bb2..0000000
|
|
--- a/support/misc/file.c
|
|
+++ /dev/null
|
|
@@ -1,115 +0,0 @@
|
|
-/*
|
|
- * Copyright 2009 Oracle. All rights reserved.
|
|
- * Copyright 2017 Red Hat, Inc. All rights reserved.
|
|
- *
|
|
- * This file is part of nfs-utils.
|
|
- *
|
|
- * nfs-utils is free software; you can redistribute it and/or modify
|
|
- * it under the terms of the GNU General Public License as published by
|
|
- * the Free Software Foundation; either version 2 of the License, or
|
|
- * (at your option) any later version.
|
|
- *
|
|
- * nfs-utils is distributed in the hope that it will be useful,
|
|
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
- * GNU General Public License for more details.
|
|
- *
|
|
- * You should have received a copy of the GNU General Public License
|
|
- * along with nfs-utils. If not, see <http://www.gnu.org/licenses/>.
|
|
- */
|
|
-
|
|
-#ifdef HAVE_CONFIG_H
|
|
-#include <config.h>
|
|
-#endif
|
|
-
|
|
-#include <sys/stat.h>
|
|
-
|
|
-#include <string.h>
|
|
-#include <libgen.h>
|
|
-#include <stdio.h>
|
|
-#include <errno.h>
|
|
-#include <dirent.h>
|
|
-#include <stdlib.h>
|
|
-#include <stdbool.h>
|
|
-#include <limits.h>
|
|
-
|
|
-#include "xlog.h"
|
|
-#include "misc.h"
|
|
-
|
|
-/*
|
|
- * Returns a dynamically allocated, '\0'-terminated buffer
|
|
- * containing an appropriate pathname, or NULL if an error
|
|
- * occurs. Caller must free the returned result with free(3).
|
|
- */
|
|
-__attribute__((__malloc__))
|
|
-char *
|
|
-generic_make_pathname(const char *base, const char *leaf)
|
|
-{
|
|
- size_t size;
|
|
- char *path;
|
|
- int len;
|
|
-
|
|
- size = strlen(base) + strlen(leaf) + 2;
|
|
- if (size > PATH_MAX)
|
|
- return NULL;
|
|
-
|
|
- path = malloc(size);
|
|
- if (path == NULL)
|
|
- return NULL;
|
|
-
|
|
- len = snprintf(path, size, "%s/%s", base, leaf);
|
|
- if ((len < 0) || ((size_t)len >= size)) {
|
|
- free(path);
|
|
- return NULL;
|
|
- }
|
|
-
|
|
- return path;
|
|
-}
|
|
-
|
|
-
|
|
-/**
|
|
- * generic_setup_basedir - set up basedir
|
|
- * @progname: C string containing name of program, for error messages
|
|
- * @parentdir: C string containing pathname to on-disk state, or NULL
|
|
- * @base: character buffer to contain the basedir that is set up
|
|
- * @baselen: size of @base in bytes
|
|
- *
|
|
- * This runs before logging is set up, so error messages are directed
|
|
- * to stderr.
|
|
- *
|
|
- * Returns true and sets up our basedir, if @parentdir was valid
|
|
- * and usable; otherwise false is returned.
|
|
- */
|
|
-_Bool
|
|
-generic_setup_basedir(const char *progname, const char *parentdir, char *base,
|
|
- const size_t baselen)
|
|
-{
|
|
- static char buf[PATH_MAX];
|
|
- struct stat st;
|
|
- char *path;
|
|
-
|
|
- /* First: test length of name and whether it exists */
|
|
- if ((strlen(parentdir) >= baselen) || (strlen(parentdir) >= PATH_MAX)) {
|
|
- (void)fprintf(stderr, "%s: Directory name too long: %s",
|
|
- progname, parentdir);
|
|
- return false;
|
|
- }
|
|
- if (lstat(parentdir, &st) == -1) {
|
|
- (void)fprintf(stderr, "%s: Failed to stat %s: %s",
|
|
- progname, parentdir, strerror(errno));
|
|
- return false;
|
|
- }
|
|
-
|
|
- /* Ensure we have a clean directory pathname */
|
|
- strncpy(buf, parentdir, sizeof(buf)-1);
|
|
- path = dirname(buf);
|
|
- if (*path == '.') {
|
|
- (void)fprintf(stderr, "%s: Unusable directory %s",
|
|
- progname, parentdir);
|
|
- return false;
|
|
- }
|
|
-
|
|
- xlog(D_CALL, "Using %s as the state directory", parentdir);
|
|
- strcpy(base, parentdir);
|
|
- return true;
|
|
-}
|
|
diff --git a/support/misc/misc.c b/support/misc/misc.c
|
|
new file mode 100644
|
|
index 0000000..e7c3819
|
|
--- /dev/null
|
|
+++ b/support/misc/misc.c
|
|
@@ -0,0 +1,111 @@
|
|
+/*
|
|
+ * Copyright 2009 Oracle. All rights reserved.
|
|
+ * Copyright 2017 Red Hat, Inc. All rights reserved.
|
|
+ *
|
|
+ * This file is part of nfs-utils.
|
|
+ *
|
|
+ * nfs-utils is free software; you can redistribute it and/or modify
|
|
+ * it under the terms of the GNU General Public License as published by
|
|
+ * the Free Software Foundation; either version 2 of the License, or
|
|
+ * (at your option) any later version.
|
|
+ *
|
|
+ * nfs-utils is distributed in the hope that it will be useful,
|
|
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
+ * GNU General Public License for more details.
|
|
+ *
|
|
+ * You should have received a copy of the GNU General Public License
|
|
+ * along with nfs-utils. If not, see <http://www.gnu.org/licenses/>.
|
|
+ */
|
|
+
|
|
+#include <sys/stat.h>
|
|
+
|
|
+#include <string.h>
|
|
+#include <libgen.h>
|
|
+#include <stdio.h>
|
|
+#include <errno.h>
|
|
+#include <dirent.h>
|
|
+#include <stdlib.h>
|
|
+#include <stdbool.h>
|
|
+#include <limits.h>
|
|
+
|
|
+#include "xlog.h"
|
|
+#include "misc.h"
|
|
+
|
|
+/*
|
|
+ * Returns a dynamically allocated, '\0'-terminated buffer
|
|
+ * containing an appropriate pathname, or NULL if an error
|
|
+ * occurs. Caller must free the returned result with free(3).
|
|
+ */
|
|
+__attribute__((__malloc__))
|
|
+char *
|
|
+generic_make_pathname(const char *base, const char *leaf)
|
|
+{
|
|
+ size_t size;
|
|
+ char *path;
|
|
+ int len;
|
|
+
|
|
+ size = strlen(base) + strlen(leaf) + 2;
|
|
+ if (size > PATH_MAX)
|
|
+ return NULL;
|
|
+
|
|
+ path = malloc(size);
|
|
+ if (path == NULL)
|
|
+ return NULL;
|
|
+
|
|
+ len = snprintf(path, size, "%s/%s", base, leaf);
|
|
+ if ((len < 0) || ((size_t)len >= size)) {
|
|
+ free(path);
|
|
+ return NULL;
|
|
+ }
|
|
+
|
|
+ return path;
|
|
+}
|
|
+
|
|
+
|
|
+/**
|
|
+ * generic_setup_basedir - set up basedir
|
|
+ * @progname: C string containing name of program, for error messages
|
|
+ * @parentdir: C string containing pathname to on-disk state, or NULL
|
|
+ * @base: character buffer to contain the basedir that is set up
|
|
+ * @baselen: size of @base in bytes
|
|
+ *
|
|
+ * This runs before logging is set up, so error messages are directed
|
|
+ * to stderr.
|
|
+ *
|
|
+ * Returns true and sets up our basedir, if @parentdir was valid
|
|
+ * and usable; otherwise false is returned.
|
|
+ */
|
|
+_Bool
|
|
+generic_setup_basedir(const char *progname, const char *parentdir, char *base,
|
|
+ const size_t baselen)
|
|
+{
|
|
+ static char buf[PATH_MAX];
|
|
+ struct stat st;
|
|
+ char *path;
|
|
+
|
|
+ /* First: test length of name and whether it exists */
|
|
+ if ((strlen(parentdir) >= baselen) || (strlen(parentdir) >= PATH_MAX)) {
|
|
+ (void)fprintf(stderr, "%s: Directory name too long: %s",
|
|
+ progname, parentdir);
|
|
+ return false;
|
|
+ }
|
|
+ if (lstat(parentdir, &st) == -1) {
|
|
+ (void)fprintf(stderr, "%s: Failed to stat %s: %s",
|
|
+ progname, parentdir, strerror(errno));
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ /* Ensure we have a clean directory pathname */
|
|
+ strncpy(buf, parentdir, sizeof(buf)-1);
|
|
+ path = dirname(buf);
|
|
+ if (*path == '.') {
|
|
+ (void)fprintf(stderr, "%s: Unusable directory %s",
|
|
+ progname, parentdir);
|
|
+ return false;
|
|
+ }
|
|
+
|
|
+ xlog(D_CALL, "Using %s as the state directory", parentdir);
|
|
+ strcpy(base, parentdir);
|
|
+ return true;
|
|
+}
|
|
diff --git a/support/nsm/Makefile.am b/support/nsm/Makefile.am
|
|
index 8f5874e..68f1a46 100644
|
|
--- a/support/nsm/Makefile.am
|
|
+++ b/support/nsm/Makefile.am
|
|
@@ -10,7 +10,7 @@ GENFILES = $(GENFILES_CLNT) $(GENFILES_SVC) $(GENFILES_XDR) $(GENFILES_H)
|
|
EXTRA_DIST = sm_inter.x
|
|
|
|
noinst_LIBRARIES = libnsm.a
|
|
-libnsm_a_SOURCES = $(GENFILES) file.c rpc.c
|
|
+libnsm_a_SOURCES = $(GENFILES) ../misc/misc.c file.c rpc.c
|
|
|
|
BUILT_SOURCES = $(GENFILES)
|
|
|
|
|