Don't try to use the 32-bit drti.o unless the data model is explicitly set
to ILP32. Otherwise dtrace -G will attempt to use it on amd64 if it can't determine which data model to use, which happens when -64 is omitted and no object files are provided, e.g. with # dtrace -G -n BEGIN This would result in a linker error, but now works properly. Also remove an unnecessary #ifdef. MFC after: 2 weeks
This commit is contained in:
parent
4c85fcfa37
commit
ee765c2d34
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=257877
@ -1864,7 +1864,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
|
|||||||
* Arches which default to 64-bit need to explicitly use
|
* Arches which default to 64-bit need to explicitly use
|
||||||
* the 32-bit library path.
|
* the 32-bit library path.
|
||||||
*/
|
*/
|
||||||
int use_32 = !(dtp->dt_oflags & DTRACE_O_LP64);
|
int use_32 = (dtp->dt_oflags & DTRACE_O_ILP32);
|
||||||
#else
|
#else
|
||||||
/*
|
/*
|
||||||
* Arches which are 32-bit only just use the normal
|
* Arches which are 32-bit only just use the normal
|
||||||
@ -1879,9 +1879,7 @@ dtrace_program_link(dtrace_hdl_t *dtp, dtrace_prog_t *pgp, uint_t dflags,
|
|||||||
len = snprintf(&tmp, 1, fmt, dtp->dt_ld_path, file, tfile,
|
len = snprintf(&tmp, 1, fmt, dtp->dt_ld_path, file, tfile,
|
||||||
drti) + 1;
|
drti) + 1;
|
||||||
|
|
||||||
#if !defined(sun)
|
|
||||||
len *= 2;
|
len *= 2;
|
||||||
#endif
|
|
||||||
cmd = alloca(len);
|
cmd = alloca(len);
|
||||||
|
|
||||||
(void) snprintf(cmd, len, fmt, dtp->dt_ld_path, file,
|
(void) snprintf(cmd, len, fmt, dtp->dt_ld_path, file,
|
||||||
|
Loading…
Reference in New Issue
Block a user