0004-fix-build-with-gcc-10.patch 7.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124
  1. fix build with gcc 10
  2. gcc 10 is now defaulting to -fno-common resulting in the following build
  3. failures:
  4. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/bin/arm-buildroot-linux-gnueabihf-gcc -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -g2 -D_FORTIFY_SOURCE=1 -DENABLE_IPV6 -DD_DNS_THREADED -D_REENTRANT -D_THREAD_SAFE -Wall -W -Wno-unused-parameter -Waggregate-return -o dpid dpi.o dpi_socket_dir.o dpid.o dpid_common.o main.o misc_new.o ../dpip/libDpip.a ../dlib/libDlib.a
  5. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: dpi_socket_dir.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here
  6. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here
  7. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: dpid_common.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here
  8. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:64: multiple definition of `sock_set'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:64: first defined here
  9. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:61: multiple definition of `services_list'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:61: first defined here
  10. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:58: multiple definition of `dpi_attr_list'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:58: first defined here
  11. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:55: multiple definition of `numsocks'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:55: first defined here
  12. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:52: multiple definition of `numdpis'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:52: first defined here
  13. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:31: multiple definition of `srs_fd'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:31: first defined here
  14. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:28: multiple definition of `srs_name'; dpid.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid.h:28: first defined here
  15. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: main.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here
  16. /nvme/rc-buildroot-test/scripts/instance-0/output-1/host/lib/gcc/arm-buildroot-linux-gnueabihf/10.2.0/../../../../arm-buildroot-linux-gnueabihf/bin/ld: misc_new.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: multiple definition of `dpi_errno'; dpi.o:/nvme/rc-buildroot-test/scripts/instance-0/output-1/build/dillo-3.0.5/dpid/dpid_common.h:44: first defined here
  17. So add missing extern for srs_fd, numdpis, numsocks, dpi_attr_list,
  18. services_list and sock_set
  19. Also remove srs_name which is never used and give a name to dpi_errno
  20. enum
  21. Fixes:
  22. - http://autobuild.buildroot.org/results/9c777af97fe50143c6a68f0170fc86c87d8ead3f
  23. Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
  24. [Upstream status: sent to jcid@dillo.org]
  25. diff -r f60d55c02567 dpid/dpid.c
  26. --- a/dpid/dpid.c Fri Oct 05 22:05:08 2018 +0200
  27. +++ b/dpid/dpid.c Thu Aug 27 18:16:50 2020 +0200
  28. @@ -38,6 +38,12 @@
  29. #define QUEUE 5
  30. +int srs_fd;
  31. +int numdpis;
  32. +int numsocks;
  33. +struct dp *dpi_attr_list;
  34. +Dlist *services_list;
  35. +fd_set sock_set;
  36. volatile sig_atomic_t caught_sigchld = 0;
  37. char *SharedKey = NULL;
  38. diff -r f60d55c02567 dpid/dpid.h
  39. --- a/dpid/dpid.h Fri Oct 05 22:05:08 2018 +0200
  40. +++ b/dpid/dpid.h Thu Aug 27 18:16:50 2020 +0200
  41. @@ -25,10 +25,9 @@
  42. /*! \TODO: Should read this from dillorc */
  43. #define SRS_NAME "dpid.srs"
  44. -char *srs_name;
  45. /*! dpid's service request socket file descriptor */
  46. -int srs_fd;
  47. +extern int srs_fd;
  48. /*! plugin state information
  49. */
  50. @@ -49,19 +48,19 @@
  51. };
  52. /*! Number of available plugins */
  53. -int numdpis;
  54. +extern int numdpis;
  55. /*! Number of sockets being watched */
  56. -int numsocks;
  57. +extern int numsocks;
  58. /*! State information for each plugin. */
  59. -struct dp *dpi_attr_list;
  60. +extern struct dp *dpi_attr_list;
  61. /*! service served for each plugin */
  62. -Dlist *services_list;
  63. +extern Dlist *services_list;
  64. /*! Set of sockets watched for connections */
  65. -fd_set sock_set;
  66. +extern fd_set sock_set;
  67. /*! Set to 1 by the SIGCHLD handler dpi_sigchld */
  68. extern volatile sig_atomic_t caught_sigchld;
  69. diff -r f60d55c02567 dpid/dpid_common.h
  70. --- a/dpid/dpid_common.h Fri Oct 05 22:05:08 2018 +0200
  71. +++ b/dpid/dpid_common.h Thu Aug 27 18:16:50 2020 +0200
  72. @@ -37,10 +37,10 @@
  73. /*! Error codes for dpid */
  74. -enum {
  75. +enum dpi_errno {
  76. no_errors,
  77. dpid_srs_addrinuse /* dpid service request socket address already in use */
  78. -} dpi_errno;
  79. +};
  80. /*! Intended for identifying dillo plugins
  81. * and related files
  82. diff -r f60d55c02567 dpid/main.c
  83. --- a/dpid/main.c Fri Oct 05 22:05:08 2018 +0200
  84. +++ b/dpid/main.c Thu Aug 27 18:16:50 2020 +0200
  85. @@ -231,7 +231,7 @@
  86. /* this sleep used to unmask a race condition */
  87. // sleep(2);
  88. - dpi_errno = no_errors;
  89. + enum dpi_errno error_code = no_errors;
  90. /* Get list of available dpis */
  91. numdpis = register_all(&dpi_attr_list);
  92. @@ -254,7 +254,7 @@
  93. /* Initialise sockets */
  94. if ((numsocks = init_ids_srs_socket()) == -1) {
  95. - switch (dpi_errno) {
  96. + switch (error_code) {
  97. case dpid_srs_addrinuse:
  98. MSG_ERR("dpid refuses to start, possibly because:\n");
  99. MSG_ERR("\t1) An instance of dpid is already running.\n");