Lines Matching +full:half +full:- +full:bit
47 typedef int (*ld_main_f)(int, char *[], Half);
134 * not a full ELF header, but only the class-independent prefix that we need.
136 * As this is a raw (non-libelf) read, we are responsible for handling any
144 Half e_type; /* file type */
145 Half e_machine; /* target machine */
160 /* If strings[] element for our error type is non-NULL, issue prefix */ in veprintf()
199 * fd - Open file descriptor for file
200 * elf - libelf ELF descriptor
201 * class_ret, mach_ret - Address of variables to receive ELFCLASS
209 archive(int fd, Elf *elf, uchar_t *class_ret, Half *mach_ret) in archive()
226 if (*arhdr->ar_name == '/') in archive()
239 *class_ret = ehdr->e_ident[EI_CLASS]; in archive()
240 *mach_ret = ehdr->e_machine; in archive()
246 *class_ret = ehdr->e_ident[EI_CLASS]; in archive()
247 *mach_ret = ehdr->e_machine; in archive()
258 * - ELFCLASS of resulting object (class)
259 * - ELF machine type of resulting object (m_mach)
263 * - Command line options (-32, -64 -z target).
264 * - From the first plain object seen on the command line. (This is
266 * - From the first object contained within the first archive
268 * - If all else fails, we assume a 32-bit object for the native machine.
271 * argc, argv - Command line argument vector
272 * class_ret - Address of variable to receive ELFCLASS of output object
275 process_args(int argc, char *argv[], uchar_t *class_ret, Half *mach) in process_args()
277 Half mach32 = EM_NONE; in process_args()
278 Half mach64 = EM_NONE; in process_args()
284 Half ar_mach; in process_args()
296 * -32 Produce an ELFCLASS32 object. This is the default, so in process_args()
297 * -32 is only needed when linking entirely from archives, in process_args()
298 * and the first archive contains a mix of 32 and 64-bit in process_args()
299 * objects, and the first object in that archive is 64-bit. in process_args()
303 * -64 Produce an ELFCLASS64 object. (Note that this will in process_args()
304 * indirectly cause the use of the 64-bit linker if in process_args()
305 * the system is 64-bit capable). The most common need in process_args()
309 * a mix of 32 and 64-bit objects, and the first object in process_args()
310 * in that archive is 32-bit. in process_args()
312 * -z target=platform in process_args()
315 * for a non-native target entirely from a mapfile, in process_args()
320 * If we've already processed an object and we find -32/-64, and in process_args()
334 while ((c = ld_getopt(0, optind, argc, argv)) != -1) { in process_args()
338 * MSG_ORIG(MSG_ARG_TWO) is just the non-localized in process_args()
357 /* -z target=platform; silently skip everything else */ in process_args()
381 * of ELF objects --- if no plain ELF object is specified, the type in process_args()
383 * there is no object, and no archive, then we fall back to a 32-bit in process_args()
393 * loop if an unadorned `-' argument is passed to us. in process_args()
395 if (argv[optind][0] == '-') { in process_args()
418 * we examine them directly and avoid the map-unmap-map in process_args()
423 if ((fd = open(argv[optind], O_RDONLY)) == -1) { in process_args()
455 * Both the 32 and 64-bit versions get the in process_args()
486 * from the first archive, and failing that, default to 32-bit. in process_args()
537 next->sl_str = arg; in split_options()
539 nextp = &next->sl_next; in split_options()
564 for (nargc = 0, p = opts; p != NULL; p = p->sl_next) in prepend_ldoptions()
585 for (nargc = 1, p = opts; p != NULL; nargc++, p = p->sl_next) in prepend_ldoptions()
586 nargv[nargc] = p->sl_str; in prepend_ldoptions()
590 * new argv array, and re-vector argc and argv to reference this new in prepend_ldoptions()
601 t = p->sl_next; in prepend_ldoptions()
614 * alternate link-editors (debugging/developer copies) even in complex build
627 * the present link-editor. Note that we unconditionally unset it. in ld_altexec()
640 for (p = opts; p != NULL; p = p->sl_next) in ld_altexec()
648 for (i = 0, p = opts; p != NULL; p = p->sl_next, i++) in ld_altexec()
649 nargv[i] = p->sl_str; in ld_altexec()
658 t = p->sl_next; in ld_altexec()
678 Half mach; in main()
702 * - object class in main()
703 * - link-editor class in main()
704 * - target machine in main()