Lines Matching refs:result
46 prepare_text_output (AsmCtx_t *result)
48 if (result->fd == -1)
49 result->out.file = stdout;
52 result->out.file = fdopen (result->fd, "a");
53 if (result->out.file == NULL)
55 close (result->fd);
56 free (result);
57 result = NULL;
60 __fsetlocking (result->out.file, FSETLOCKING_BYCALLER);
63 return result;
68 prepare_binary_output (AsmCtx_t *result, Ebl *ebl)
74 result->out.elf = elf_begin (result->fd, ELF_C_WRITE_MMAP, NULL);
75 if (result->out.elf == NULL)
78 unlink (result->tmp_fname);
79 close (result->fd);
80 free (result);
87 if (gelf_newehdr (result->out.elf, class) == 0)
90 ehdr = gelf_getehdr (result->out.elf, &ehdr_mem);
107 (void) gelf_update_ehdr (result->out.elf, ehdr);
110 result->section_list = NULL;
113 asm_symbol_tab_init (&result->symbol_tab, 67);
114 result->nsymbol_tab = 0;
116 result->section_strtab = dwelf_strtab_init (true);
117 result->symbol_strtab = dwelf_strtab_init (true);
120 result->groups = NULL;
121 result->ngroups = 0;
123 return result;
139 AsmCtx_t *result = malloc (sizeof (AsmCtx_t) + 2 * fname_len + 9);
140 if (result == NULL)
144 rwlock_init (result->lock);
149 result->fname = stpcpy (mempcpy (result->tmp_fname, fname, fname_len),
151 memcpy (result->fname, fname, fname_len + 1);
154 result->fd = mkstemp (result->tmp_fname);
155 if (result->fd == -1)
158 free (result);
165 result->fd = -1;
168 result->tempsym_count = 0;
171 result->textp = textp;
173 result = prepare_text_output (result);
175 result = prepare_binary_output (result, ebl);
177 return result;