]> git.ipfire.org Git - thirdparty/openembedded/openembedded-core-contrib.git/blob
aa551ebd19193e15fd4dae52be50d7343cab9abc
[thirdparty/openembedded/openembedded-core-contrib.git] /
1 From 690a90a5b7786e40b5447ad7c5f19a7657d27405 Mon Sep 17 00:00:00 2001
2 From: Mingli Yu <Mingli.Yu@windriver.com>
3 Date: Fri, 14 Dec 2018 17:44:32 +0800
4 Subject: [PATCH] Makefile.am: fix undefined function for libnsm.a
5
6 The source file of libnsm.a uses some function
7 in ../support/misc/file.c, add ../support/misc/file.c
8 to libnsm_a_SOURCES to fix build error when run
9 "make -C tests statdb_dump":
10 | ../support/nsm/libnsm.a(file.o): In function `nsm_make_pathname':
11 | /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'
12 | /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'
13 | /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'
14 | ../support/nsm/libnsm.a(file.o): In function `nsm_setup_pathnames':
15 | /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'
16 | collect2: error: ld returned 1 exit status
17
18 As there is already one source file named file.c
19 as support/nsm/file.c in support/nsm/Makefile.am,
20 so rename ../support/misc/file.c to ../support/misc/misc.c.
21
22 Upstream-Status: Submitted[https://marc.info/?l=linux-nfs&m=154502780423058&w=2]
23
24 Signed-off-by: Mingli Yu <Mingli.Yu@windriver.com>
25 ---
26 support/misc/Makefile.am | 2 +-
27 support/misc/file.c | 111 -----------------------------------------------
28 support/misc/misc.c | 111 +++++++++++++++++++++++++++++++++++++++++++++++
29 support/nsm/Makefile.am | 2 +-
30 4 files changed, 113 insertions(+), 113 deletions(-)
31 delete mode 100644 support/misc/file.c
32 create mode 100644 support/misc/misc.c
33
34 diff --git a/support/misc/Makefile.am b/support/misc/Makefile.am
35 index 8936b0d..d4c1f76 100644
36 --- a/support/misc/Makefile.am
37 +++ b/support/misc/Makefile.am
38 @@ -1,6 +1,6 @@
39 ## Process this file with automake to produce Makefile.in
40
41 noinst_LIBRARIES = libmisc.a
42 -libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c file.c
43 +libmisc_a_SOURCES = tcpwrapper.c from_local.c mountpoint.c misc.c
44
45 MAINTAINERCLEANFILES = Makefile.in
46 diff --git a/support/misc/file.c b/support/misc/file.c
47 deleted file mode 100644
48 index e7c3819..0000000
49 --- a/support/misc/file.c
50 +++ /dev/null
51 @@ -1,111 +0,0 @@
52 -/*
53 - * Copyright 2009 Oracle. All rights reserved.
54 - * Copyright 2017 Red Hat, Inc. All rights reserved.
55 - *
56 - * This file is part of nfs-utils.
57 - *
58 - * nfs-utils is free software; you can redistribute it and/or modify
59 - * it under the terms of the GNU General Public License as published by
60 - * the Free Software Foundation; either version 2 of the License, or
61 - * (at your option) any later version.
62 - *
63 - * nfs-utils is distributed in the hope that it will be useful,
64 - * but WITHOUT ANY WARRANTY; without even the implied warranty of
65 - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
66 - * GNU General Public License for more details.
67 - *
68 - * You should have received a copy of the GNU General Public License
69 - * along with nfs-utils. If not, see <http://www.gnu.org/licenses/>.
70 - */
71 -
72 -#include <sys/stat.h>
73 -
74 -#include <string.h>
75 -#include <libgen.h>
76 -#include <stdio.h>
77 -#include <errno.h>
78 -#include <dirent.h>
79 -#include <stdlib.h>
80 -#include <stdbool.h>
81 -#include <limits.h>
82 -
83 -#include "xlog.h"
84 -#include "misc.h"
85 -
86 -/*
87 - * Returns a dynamically allocated, '\0'-terminated buffer
88 - * containing an appropriate pathname, or NULL if an error
89 - * occurs. Caller must free the returned result with free(3).
90 - */
91 -__attribute__((__malloc__))
92 -char *
93 -generic_make_pathname(const char *base, const char *leaf)
94 -{
95 - size_t size;
96 - char *path;
97 - int len;
98 -
99 - size = strlen(base) + strlen(leaf) + 2;
100 - if (size > PATH_MAX)
101 - return NULL;
102 -
103 - path = malloc(size);
104 - if (path == NULL)
105 - return NULL;
106 -
107 - len = snprintf(path, size, "%s/%s", base, leaf);
108 - if ((len < 0) || ((size_t)len >= size)) {
109 - free(path);
110 - return NULL;
111 - }
112 -
113 - return path;
114 -}
115 -
116 -
117 -/**
118 - * generic_setup_basedir - set up basedir
119 - * @progname: C string containing name of program, for error messages
120 - * @parentdir: C string containing pathname to on-disk state, or NULL
121 - * @base: character buffer to contain the basedir that is set up
122 - * @baselen: size of @base in bytes
123 - *
124 - * This runs before logging is set up, so error messages are directed
125 - * to stderr.
126 - *
127 - * Returns true and sets up our basedir, if @parentdir was valid
128 - * and usable; otherwise false is returned.
129 - */
130 -_Bool
131 -generic_setup_basedir(const char *progname, const char *parentdir, char *base,
132 - const size_t baselen)
133 -{
134 - static char buf[PATH_MAX];
135 - struct stat st;
136 - char *path;
137 -
138 - /* First: test length of name and whether it exists */
139 - if ((strlen(parentdir) >= baselen) || (strlen(parentdir) >= PATH_MAX)) {
140 - (void)fprintf(stderr, "%s: Directory name too long: %s",
141 - progname, parentdir);
142 - return false;
143 - }
144 - if (lstat(parentdir, &st) == -1) {
145 - (void)fprintf(stderr, "%s: Failed to stat %s: %s",
146 - progname, parentdir, strerror(errno));
147 - return false;
148 - }
149 -
150 - /* Ensure we have a clean directory pathname */
151 - strncpy(buf, parentdir, sizeof(buf)-1);
152 - path = dirname(buf);
153 - if (*path == '.') {
154 - (void)fprintf(stderr, "%s: Unusable directory %s",
155 - progname, parentdir);
156 - return false;
157 - }
158 -
159 - xlog(D_CALL, "Using %s as the state directory", parentdir);
160 - strcpy(base, parentdir);
161 - return true;
162 -}
163 diff --git a/support/misc/misc.c b/support/misc/misc.c
164 new file mode 100644
165 index 0000000..e7c3819
166 --- /dev/null
167 +++ b/support/misc/misc.c
168 @@ -0,0 +1,111 @@
169 +/*
170 + * Copyright 2009 Oracle. All rights reserved.
171 + * Copyright 2017 Red Hat, Inc. All rights reserved.
172 + *
173 + * This file is part of nfs-utils.
174 + *
175 + * nfs-utils is free software; you can redistribute it and/or modify
176 + * it under the terms of the GNU General Public License as published by
177 + * the Free Software Foundation; either version 2 of the License, or
178 + * (at your option) any later version.
179 + *
180 + * nfs-utils is distributed in the hope that it will be useful,
181 + * but WITHOUT ANY WARRANTY; without even the implied warranty of
182 + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
183 + * GNU General Public License for more details.
184 + *
185 + * You should have received a copy of the GNU General Public License
186 + * along with nfs-utils. If not, see <http://www.gnu.org/licenses/>.
187 + */
188 +
189 +#include <sys/stat.h>
190 +
191 +#include <string.h>
192 +#include <libgen.h>
193 +#include <stdio.h>
194 +#include <errno.h>
195 +#include <dirent.h>
196 +#include <stdlib.h>
197 +#include <stdbool.h>
198 +#include <limits.h>
199 +
200 +#include "xlog.h"
201 +#include "misc.h"
202 +
203 +/*
204 + * Returns a dynamically allocated, '\0'-terminated buffer
205 + * containing an appropriate pathname, or NULL if an error
206 + * occurs. Caller must free the returned result with free(3).
207 + */
208 +__attribute__((__malloc__))
209 +char *
210 +generic_make_pathname(const char *base, const char *leaf)
211 +{
212 + size_t size;
213 + char *path;
214 + int len;
215 +
216 + size = strlen(base) + strlen(leaf) + 2;
217 + if (size > PATH_MAX)
218 + return NULL;
219 +
220 + path = malloc(size);
221 + if (path == NULL)
222 + return NULL;
223 +
224 + len = snprintf(path, size, "%s/%s", base, leaf);
225 + if ((len < 0) || ((size_t)len >= size)) {
226 + free(path);
227 + return NULL;
228 + }
229 +
230 + return path;
231 +}
232 +
233 +
234 +/**
235 + * generic_setup_basedir - set up basedir
236 + * @progname: C string containing name of program, for error messages
237 + * @parentdir: C string containing pathname to on-disk state, or NULL
238 + * @base: character buffer to contain the basedir that is set up
239 + * @baselen: size of @base in bytes
240 + *
241 + * This runs before logging is set up, so error messages are directed
242 + * to stderr.
243 + *
244 + * Returns true and sets up our basedir, if @parentdir was valid
245 + * and usable; otherwise false is returned.
246 + */
247 +_Bool
248 +generic_setup_basedir(const char *progname, const char *parentdir, char *base,
249 + const size_t baselen)
250 +{
251 + static char buf[PATH_MAX];
252 + struct stat st;
253 + char *path;
254 +
255 + /* First: test length of name and whether it exists */
256 + if ((strlen(parentdir) >= baselen) || (strlen(parentdir) >= PATH_MAX)) {
257 + (void)fprintf(stderr, "%s: Directory name too long: %s",
258 + progname, parentdir);
259 + return false;
260 + }
261 + if (lstat(parentdir, &st) == -1) {
262 + (void)fprintf(stderr, "%s: Failed to stat %s: %s",
263 + progname, parentdir, strerror(errno));
264 + return false;
265 + }
266 +
267 + /* Ensure we have a clean directory pathname */
268 + strncpy(buf, parentdir, sizeof(buf)-1);
269 + path = dirname(buf);
270 + if (*path == '.') {
271 + (void)fprintf(stderr, "%s: Unusable directory %s",
272 + progname, parentdir);
273 + return false;
274 + }
275 +
276 + xlog(D_CALL, "Using %s as the state directory", parentdir);
277 + strcpy(base, parentdir);
278 + return true;
279 +}
280 diff --git a/support/nsm/Makefile.am b/support/nsm/Makefile.am
281 index 8f5874e..68f1a46 100644
282 --- a/support/nsm/Makefile.am
283 +++ b/support/nsm/Makefile.am
284 @@ -10,7 +10,7 @@ GENFILES = $(GENFILES_CLNT) $(GENFILES_SVC) $(GENFILES_XDR) $(GENFILES_H)
285 EXTRA_DIST = sm_inter.x
286
287 noinst_LIBRARIES = libnsm.a
288 -libnsm_a_SOURCES = $(GENFILES) file.c rpc.c
289 +libnsm_a_SOURCES = $(GENFILES) ../misc/misc.c file.c rpc.c
290
291 BUILT_SOURCES = $(GENFILES)
292
293 --
294 2.7.4
295