Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 762095 | Differences between
and this patch

Collapse All | Expand All

(-)cctools-895/misc/llvm-shim.c.orig (+68 lines)
Line 0 Link Here
1
#include <unistd.h>
2
#include <string.h>
3
#include "stuff/allocate.h"
4
#include "stuff/execute.h"
5
#include "stuff/errors.h"
6
7
/* used by system_fatal */
8
char *progname = NULL;
9
10
int main(int argc, char **argv)
11
{
12
	char *prog2, *prog2_path;
13
14
	progname = argv[0];
15
	prog2 = strrchr(argv[0], '/');
16
	if (prog2 != NULL)
17
		progname = prog2 + 1;
18
19
	/* looks like we've been called with CTARGET in our name - let's try to
20
	 * get rid of it */
21
	prog2 = strstr(progname, "-apple-darwin");
22
	if (prog2 != NULL) {
23
		/* x86_64-apple-darwin16-nm
24
		 *       ^ p */
25
		prog2 += strlen("-apple-darwin");
26
27
		/*                    ^ */
28
		prog2 = strchr(prog2, '-');
29
		/*                      ^ */
30
		if (prog2 != NULL) {
31
		        /*               ^ */
32
			progname = prog2+1;
33
		}
34
	}
35
36
	/* try ./llvm-<tool> */
37
	prog2 = makestr("llvm-", progname, NULL);
38
	prog2_path = cmd_with_prefix(prog2);
39
	if(access(prog2_path, F_OK) == -1) {
40
		/* try to find llvm-<tool> in prefix (eg llvm-nm) */
41
		try_hard_to_find_llvm_tool_in_prefix(&prog2_path, "bin", prog2, argv[0]);
42
		if (access(prog2_path, F_OK) == -1) {
43
			/* try to find llvm's ./<tool> in prefix (eg dsymutil) */
44
			try_hard_to_find_llvm_tool_in_prefix(&prog2_path, "bin", progname, argv[0]);
45
			if (access(prog2_path, F_OK) == -1) {
46
				/* try ./<tool>-classic (eg nm-classic) */
47
				prog2 = makestr(progname, "-classic", NULL);
48
				prog2_path = cmd_with_prefix(prog2);
49
				if(access(prog2_path, F_OK) == -1) {
50
					/* bail out */
51
					system_fatal("can't find: %s", progname);
52
				}
53
			}
54
		}
55
	}
56
57
	/* give the new program its full path in argv[0], just as if it had
58
	 * been called directly */
59
	argv[0] = prog2_path;
60
61
	/* will not normally return */
62
	execvp(prog2_path, argv);
63
64
	/* will exit(1) */
65
	system_fatal("can't exec: %s", progname);
66
67
	return 1;
68
}
(-)cctools-895/misc/Makefile.orig (-1 / +14 lines)
Lines 39-45 Link Here
39
LOCBINDIR = /usr/local/bin
39
LOCBINDIR = /usr/local/bin
40
LOCLIBDIR = /usr/local/lib
40
LOCLIBDIR = /usr/local/lib
41
41
42
CFILES1 = libtool.c
42
CFILES1 = libtool.c llvm-shim.c
43
CFILES2 = lipo.c size.c strings.c nm.c checksyms.c inout.c \
43
CFILES2 = lipo.c size.c strings.c nm.c checksyms.c inout.c \
44
	 indr.c strip.c segedit.c cmpdylib.c \
44
	 indr.c strip.c segedit.c cmpdylib.c \
45
	 pagestuff.c redo_prebinding.c seg_addr_table.c \
45
	 pagestuff.c redo_prebinding.c seg_addr_table.c \
Lines 53-58 Link Here
53
	indr.NEW strip.NEW nmedit.NEW segedit.NEW cmpdylib.NEW \
53
	indr.NEW strip.NEW nmedit.NEW segedit.NEW cmpdylib.NEW \
54
	pagestuff.NEW redo_prebinding.NEW seg_addr_table.NEW check_dylib.NEW \
54
	pagestuff.NEW redo_prebinding.NEW seg_addr_table.NEW check_dylib.NEW \
55
	seg_hack.NEW install_name_tool.NEW codesign_allocate.NEW \
55
	seg_hack.NEW install_name_tool.NEW codesign_allocate.NEW \
56
	llvm-shim.NEW \
56
	ctf_insert.NEW bitcode_strip.NEW
57
	ctf_insert.NEW bitcode_strip.NEW
57
58
58
all:	$(PROGS) lib_ofiles
59
all:	$(PROGS) lib_ofiles
Lines 246-251 Link Here
246
		$(OFILE_DIR)/bitcode_strip.private.o
247
		$(OFILE_DIR)/bitcode_strip.private.o
247
	$(DSYMUTIL) $(SYMROOT)/bitcode_strip.NEW
248
	$(DSYMUTIL) $(SYMROOT)/bitcode_strip.NEW
248
249
250
llvm-shim.NEW: llvm-shim.o $(OBJROOT)/.created.dir.stamp $(SYMROOT)/.created.dir.stamp
251
	$(CC) $(RC_CFLAGS) -nostdlib -r \
252
		-o $(OBJROOT)/llvm-shim.private.o \
253
		$(OFILE_DIR)/llvm-shim.o $(LIBSTUFF)
254
	$(CC) $(RC_CFLAGS) $(SDK) -o $(SYMROOT)/llvm-shim.NEW \
255
		$(OFILE_DIR)/llvm-shim.private.o
256
	$(DSYMUTIL) $(SYMROOT)/llvm-shim.NEW
257
249
258
250
clean: shlib_clean
259
clean: shlib_clean
251
	-rm -f \
260
	-rm -f \
Lines 271-276 Link Here
271
	$(SYMROOT)/redo_prebinding.NEW \
280
	$(SYMROOT)/redo_prebinding.NEW \
272
	$(SYMROOT)/libredo_prebinding.a \
281
	$(SYMROOT)/libredo_prebinding.a \
273
	$(SYMROOT)/cmpdylib.NEW \
282
	$(SYMROOT)/cmpdylib.NEW \
283
	$(SYMROOT)/llvm-shim.NEW \
274
	$(SYMROOT)/bitcode_strip.NEW
284
	$(SYMROOT)/bitcode_strip.NEW
275
285
276
shlib_clean:
286
shlib_clean:
Lines 319-324 Link Here
319
	$(OFILE_DIR)/cmpdylib.private.o \
329
	$(OFILE_DIR)/cmpdylib.private.o \
320
	$(OFILE_DIR)/nmedit.private.o \
330
	$(OFILE_DIR)/nmedit.private.o \
321
	$(OFILE_DIR)/strip.private.o \
331
	$(OFILE_DIR)/strip.private.o \
332
	$(OFILE_DIR)/llvm-shim.private.o \
322
	$(OFILE_DIR)/bitcode_strip.private.o
333
	$(OFILE_DIR)/bitcode_strip.private.o
323
	-rm -f make.out
334
	-rm -f make.out
324
	-rm -r -f *dSYM
335
	-rm -r -f *dSYM
Lines 360-365 Link Here
360
			  $(DSTROOT)$(USRBINDIR)/ctf_insert
371
			  $(DSTROOT)$(USRBINDIR)/ctf_insert
361
	install -m 555 $(SYMROOT)/bitcode_strip.NEW \
372
	install -m 555 $(SYMROOT)/bitcode_strip.NEW \
362
			  $(DSTROOT)$(USRBINDIR)/bitcode_strip
373
			  $(DSTROOT)$(USRBINDIR)/bitcode_strip
374
	install -m 555 $(SYMROOT)/llvm-shim.NEW \
375
			  $(DSTROOT)$(USRBINDIR)/llvm-shim
363
	$(MKDIRS) $(DSTROOT)$(LOCBINDIR)
376
	$(MKDIRS) $(DSTROOT)$(LOCBINDIR)
364
	install -m 555 $(SYMROOT)/checksyms.NEW \
377
	install -m 555 $(SYMROOT)/checksyms.NEW \
365
			  $(DSTROOT)$(LOCBINDIR)/checksyms
378
			  $(DSTROOT)$(LOCBINDIR)/checksyms

Return to bug 762095