diff --git a/tools/wrc/CHANGES b/tools/wrc/CHANGES index 30700f0a665..6f3bc3676c0 100644 --- a/tools/wrc/CHANGES +++ b/tools/wrc/CHANGES @@ -1,3 +1,9 @@ +--------------------------------------------------------------------------- +Version 1.0.4 (10-Dec-1998) +- Added a global label for elf-dll linking and a long with the resource + size and a long with the directory size. +- Killed an annoying warning since version 1.0.0 in parser.y about a + var being used before init. --------------------------------------------------------------------------- Version 1.0.3 (02-Nov-1998) diff --git a/tools/wrc/parser.y b/tools/wrc/parser.y index 494d0067e00..7f5d87798ec 100644 --- a/tools/wrc/parser.y +++ b/tools/wrc/parser.y @@ -1847,7 +1847,7 @@ event_t *add_event(int key, int id, int flags, event_t *prev) event_t *add_string_event(string_t *key, int id, int flags, event_t *prev) { - int keycode; + int keycode = 0; event_t *ev = new_event(); if(key->type != str_char) diff --git a/tools/wrc/wrc.h b/tools/wrc/wrc.h index 2985c2b467f..1201c6c7823 100644 --- a/tools/wrc/wrc.h +++ b/tools/wrc/wrc.h @@ -12,8 +12,8 @@ #include "wrctypes.h" #endif -#define WRC_VERSION "1.0.3" -#define WRC_RELEASEDATE "(02-Nov-1998)" +#define WRC_VERSION "1.0.4" +#define WRC_RELEASEDATE "(10-Dec-1998)" #define WRC_FULLVERSION WRC_VERSION " " WRC_RELEASEDATE /* Only used in heavy debugging sessions */ diff --git a/tools/wrc/writeres.c b/tools/wrc/writeres.c index ef02d4ccf96..f02d39f4557 100644 --- a/tools/wrc/writeres.c +++ b/tools/wrc/writeres.c @@ -18,6 +18,12 @@ #include "newstruc.h" #include "utils.h" +#ifdef NEED_UNDERSCORE_PREFIX +char Underscore[] = "_"; +#else +char Underscore[] = ""; +#endif + char s_file_head_str[] = "#\n" "# This file is generated with wrc version " WRC_FULLVERSION ". Do not edit!\n" @@ -742,6 +748,10 @@ void write_pe_segment(FILE *fp, resource_t *top) free(typelabel); } + fprintf(fp, "\t.align\t4\n"); + fprintf(fp, "%s_ResourceDirectorySize:\n", Underscore); + fprintf(fp, "\t.globl\t%s_ResourceDirectorySize\n", Underscore); + fprintf(fp, "\t.long\t. - %s%s\n", prefix, _PEResTab); } /* @@ -970,6 +980,13 @@ void write_s_file(char *outname, resource_t *top) fprintf(fo, "\n"); } + + if(create_dir) + { + /* Add the size of the entire resource section for elf-dlls */ + fprintf(fo, "%s_ResourceSectionSize:\n", Underscore); + fprintf(fo, "\t.long\t. - %s%s\n", prefix, _PEResTab); + } } if(indirect)