diff options
Diffstat (limited to 'meta/recipes-extended/bash/bash/makerace2.patch')
-rw-r--r-- | meta/recipes-extended/bash/bash/makerace2.patch | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/meta/recipes-extended/bash/bash/makerace2.patch b/meta/recipes-extended/bash/bash/makerace2.patch deleted file mode 100644 index abb51a5086..0000000000 --- a/meta/recipes-extended/bash/bash/makerace2.patch +++ /dev/null @@ -1,98 +0,0 @@ -The main makefile can call mkbuiltins from multiple different codepaths in parallel. -When called, it moves the existing files out the way and creates new ones, then -compares which will break the build if timing is unlucky. - -The root of the problem is mkbuiltins.c creating a file but also referencing that -file under the same name. By modifing it to allow the final name and the temp name -to be specified, we can avoid the original reason for the moving of files around. -This allows them to be created under a new name and then replaced if changed, -removing any race windows around accessing the files whilst they've been -moved or are being rewritten. - -See [YOCTO #14227] - -Upstream-Status: Submitted [https://savannah.gnu.org/patch/index.php?10210] -Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> - -Index: bash-5.1.8/builtins/Makefile.in -=================================================================== ---- bash-5.1.8.orig/builtins/Makefile.in -+++ bash-5.1.8/builtins/Makefile.in -@@ -185,19 +185,17 @@ gen-helpfiles: tmpbuiltins.o gen-helpfil - $(CC_FOR_BUILD) ${CCFLAGS_FOR_BUILD} $(LDFLAGS_FOR_BUILD) -o $@ gen-helpfiles.o tmpbuiltins.o $(LIBS_FOR_BUILD) - - builtext.h builtins.c: $(MKBUILTINS) $(DEFSRC) -- @-if test -f builtins.c; then mv -f builtins.c old-builtins.c; fi -- @-if test -f builtext.h; then mv -f builtext.h old-builtext.h; fi -- ./$(MKBUILTINS) -externfile builtext.h -structfile builtins.c \ -+ ./$(MKBUILTINS) -externfile builtext-new.h -externfinalfile builtext.h -structfile builtins-new.c \ - -noproduction $(DIRECTDEFINE) $(HELPDIRDEFINE) $(HELPSTRINGS) $(DEFSRC) -- @-if cmp -s old-builtext.h builtext.h 2>/dev/null; then \ -- mv old-builtext.h builtext.h; \ -+ @-if ! cmp -s builtext.h builtext-new.h 2>/dev/null; then \ -+ mv builtext-new.h builtext.h; \ - else \ -- $(RM) old-builtext.h; \ -+ $(RM) builtext-new.h; \ - fi -- @-if cmp -s old-builtins.c builtins.c 2>/dev/null; then \ -- mv old-builtins.c builtins.c; \ -+ @-if ! cmp -s builtins.c builtins-new.c 2>/dev/null; then \ -+ mv builtins-new.c builtins.c; \ - else \ -- $(RM) old-builtins.c; \ -+ $(RM) builtins-new.c; \ - fi - - helpdoc: gen-helpfiles -Index: bash-5.1.8/builtins/mkbuiltins.c -=================================================================== ---- bash-5.1.8.orig/builtins/mkbuiltins.c -+++ bash-5.1.8/builtins/mkbuiltins.c -@@ -113,6 +113,9 @@ char *struct_filename = (char *)NULL; - /* The name of the external declaration file. */ - char *extern_filename = (char *)NULL; - -+/* The final name of the external declaration file. */ -+char *extern_final_filename = (char *)NULL; -+ - /* Here is a structure for manipulating arrays of data. */ - typedef struct { - int size; /* Number of slots allocated to array. */ -@@ -230,6 +233,8 @@ main (argc, argv) - - if (strcmp (arg, "-externfile") == 0) - extern_filename = argv[arg_index++]; -+ else if (strcmp (arg, "-externfinalfile") == 0) -+ extern_final_filename = argv[arg_index++]; - else if (strcmp (arg, "-structfile") == 0) - struct_filename = argv[arg_index++]; - else if (strcmp (arg, "-noproduction") == 0) -@@ -273,6 +278,9 @@ main (argc, argv) - } - } - -+ if (!extern_final_filename) -+ extern_final_filename = extern_filename; -+ - /* If there are no files to process, just quit now. */ - if (arg_index == argc) - exit (0); -@@ -1174,7 +1182,7 @@ write_file_headers (structfile, externfi - fprintf (structfile, "%s\n", structfile_header[i]); - - fprintf (structfile, "#include \"%s\"\n", -- extern_filename ? extern_filename : "builtext.h"); -+ extern_final_filename ? extern_final_filename : "builtext.h"); - - fprintf (structfile, "#include \"bashintl.h\"\n"); - -@@ -1184,7 +1192,7 @@ write_file_headers (structfile, externfi - if (externfile) - fprintf (externfile, - "/* %s - The list of builtins found in libbuiltins.a. */\n", -- extern_filename ? extern_filename : "builtext.h"); -+ extern_final_filename ? extern_final_filename : "builtext.h"); - } - - /* Write out any necessary closing information for |