From 6d269edda0f49741484c1da6c71d24c031abc9ce Mon Sep 17 00:00:00 2001 From: Robert de Bath Date: Tue, 20 Mar 2001 18:55:18 +0100 Subject: Import Dev86src-0.15.5.tar.gz --- ar/Makefile | 3 +-- ar/ar.c | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 59 insertions(+), 8 deletions(-) (limited to 'ar') diff --git a/ar/Makefile b/ar/Makefile index f3b890d..61772df 100644 --- a/ar/Makefile +++ b/ar/Makefile @@ -2,7 +2,6 @@ # This file is part of the Linux-8086 Development environment and is # distributed under the GNU General Public License. -xCC=bcc -0 LIBDIR =/usr/bin CFLAGS =-O LDFLAGS = @@ -12,7 +11,7 @@ OBJS= ar.o all: ar86 ar86: $(OBJS) - $(CC) $(LDFLAGS) $(OBJS) -o $@ + $(CC) $(LDFLAGS) $^ -o $@ install: ar86 install -d $(LIBDIR) diff --git a/ar/ar.c b/ar/ar.c index 1cc3443..e57ddfb 100644 --- a/ar/ar.c +++ b/ar/ar.c @@ -19,6 +19,11 @@ #include #include +#ifdef __STDC__ +#include +#include +#include +#endif #include #include #include @@ -214,6 +219,7 @@ struct ar_hdr symdef_header; /* Name this program was run with. */ char *program_name; +#ifndef __STDC__ char *xmalloc (), *xrealloc (); void free (); @@ -236,6 +242,57 @@ void update_symdefs (); void delete_members (), move_members (), replace_members (); void quick_append (); char *basename (); +void print_modes (); +char *make_tempname (); +void copy_out_member (); +#else +/* Grrr. */ +extern void error (); +extern void fatal (); +extern void extract_members (); + +extern char *basename (char *path); +extern char *concat (char *s1, char *s2, char *s3); +extern char *make_tempname (char *name); +extern char *xmalloc (unsigned int size); +extern char *xrealloc (char *ptr, unsigned int size); +extern int filter_symbols (struct nlist *syms, unsigned int symcount); +extern int insert_in_map (char *name, struct mapelt *map, struct mapelt *after); +extern int main (int argc, char **argv); +extern int move_in_map (char *name, struct mapelt *map, struct mapelt *after); +extern int read_header_info (struct mapelt *mapelt, int desc, long int offset, long int *syms_offset, unsigned int *syms_size, long int *strs_offset, unsigned int *strs_size); +extern struct mapelt *find_mapelt (struct mapelt *map, char *name); +extern struct mapelt *find_mapelt_noerror (struct mapelt *map, register char *name); +extern struct mapelt *last_mapelt (struct mapelt *map); +extern struct mapelt *make_map (int nonexistent_ok); +extern struct mapelt *prev_mapelt (struct mapelt *map, struct mapelt *elt); +extern void add_to_map (struct member_desc member); +extern void close_archive (void); +extern void copy_out_member (struct mapelt *mapelt, int archive_indesc, int outdesc, char *outname); +extern void delete_from_map (char *name, struct mapelt *map); +extern void delete_members (void); +extern void error_with_file (char *string, struct mapelt *mapelt); +extern void extract_member (struct member_desc member, FILE *istream); +extern void header_from_map (struct ar_hdr *header, struct mapelt *mapelt); +extern void lock_for_update (void); +extern void make_new_symdefs (struct mapelt *mapelt, int archive_indesc); +extern void move_members (void); +extern void mywrite (int desc, char *buf, int bytes, char *file); +extern void perror_with_name (char *name); +extern void pfatal_with_name (char *name); +extern void print_contents (struct member_desc member, FILE *istream); +extern void print_descr (struct member_desc member); +extern void print_modes (int modes); +extern void quick_append (void); +extern void read_old_symdefs (struct mapelt *map, int archive_indesc); +extern void replace_members (void); +extern void touch_symdef_member (int outdesc, char *outname); +extern void two_operations (void); +extern void update_symdefs (struct mapelt *map, int archive_indesc); +extern void usage (char *s1, char *s2); +extern void write_archive (struct mapelt *map, int appendflag); +extern void write_symdef_member (struct mapelt *mapelt, struct mapelt *map, int outdesc, char *outname); +#endif /* Output BYTES of data at BUF to the descriptor DESC. FILE is the name of the file (for error messages). */ @@ -539,8 +596,6 @@ scan (function, crflag) fclose (arcstream); } -void print_modes (); - void print_descr (member) struct member_desc member; @@ -872,9 +927,6 @@ close_archive () to do any I/O on the archive file. */ -char *make_tempname (); -void copy_out_member (); - void write_archive (map, appendflag) struct mapelt *map; @@ -1327,7 +1379,7 @@ replace_members () change_map = change_map->next; if (!changed && (!symdef_flag || symdef_exists)) /* Nothing changed. */ - close_archive (change_map); + close_archive (); else write_archive (change_map, 0); } -- cgit v1.2.1