about summary refs log tree commit diff
path: root/etc/portage/patches/sys-power
diff options
context:
space:
mode:
Diffstat (limited to 'etc/portage/patches/sys-power')
-rw-r--r--etc/portage/patches/sys-power/suspend/gcc-10.patch93
1 files changed, 93 insertions, 0 deletions
diff --git a/etc/portage/patches/sys-power/suspend/gcc-10.patch b/etc/portage/patches/sys-power/suspend/gcc-10.patch
new file mode 100644
index 0000000..00da540
--- /dev/null
+++ b/etc/portage/patches/sys-power/suspend/gcc-10.patch
@@ -0,0 +1,93 @@
+diff -Nupr suspend~/s2ram-x86.h suspend/s2ram-x86.h
+--- suspend~/s2ram-x86.h	2012-09-15 22:23:44.000000000 +0200
++++ suspend/s2ram-x86.h	2020-05-14 19:04:21.979507630 +0200
+@@ -18,9 +18,9 @@
+ /* Item size */
+ #define ITEMSZ  1024
+ 
+-char bios_version[ITEMSZ], sys_vendor[ITEMSZ], sys_product[ITEMSZ], sys_version[ITEMSZ];
++extern char bios_version[ITEMSZ], sys_vendor[ITEMSZ], sys_product[ITEMSZ], sys_version[ITEMSZ];
+ 
+-int flags, force, fb_nosuspend, no_kms_flag;
++extern int flags, force, fb_nosuspend, no_kms_flag;
+ 
+ #define HACKS_LONG_OPTS \
+ 	{\
+diff -Nupr suspend~/s2ram-x86.c suspend/s2ram-x86.c
+--- suspend~/s2ram-x86.c	2012-09-15 22:23:44.000000000 +0200
++++ suspend/s2ram-x86.c	2020-05-14 19:33:34.683394349 +0200
+@@ -38,6 +38,10 @@ static int vbe_mode = -1, dmi_scanned;
+ #define S2RAM_NOFB	126
+ #define S2RAM_UNKNOWN	127
+ 
++/* extern in s2ram-{{arch}}.h */
++char bios_version[ITEMSZ], sys_vendor[ITEMSZ], sys_product[ITEMSZ], sys_version[ITEMSZ];
++int flags, force, fb_nosuspend, no_kms_flag;
++
+ void identify_machine(void)
+ {
+ 	if (!dmi_scanned) {
+diff -Nupr suspend~/load.c suspend/load.c
+--- suspend~/load.c	2020-05-14 18:54:12.683547000 +0200
++++ suspend/load.c	2020-05-14 19:15:39.056797202 +0200
+@@ -549,7 +549,7 @@ static int decrypt_key(struct image_head
+ 		memcpy(key, res, KEY_SIZE);
+ 		memcpy(ivec, res + KEY_SIZE, CIPHER_BLOCK);
+ 	} else {
+-		fprintf(stderr,"The main key has invalid length %i, need %i\n", s, KEY_SIZE + CIPHER_BLOCK);
++		fprintf(stderr,"The main key has invalid length %zu, need %i\n", s, KEY_SIZE + CIPHER_BLOCK);
+ 		ret = -ENODATA;
+ 	}
+ 	gcry_free(res);
+diff -Nupr suspend~/vbetool/vbetool.c suspend/vbetool/vbetool.c
+--- suspend~/vbetool/vbetool.c	2012-09-15 22:23:44.000000000 +0200
++++ suspend/vbetool/vbetool.c	2020-05-14 19:14:21.587468876 +0200
+@@ -320,7 +320,7 @@ char *__save_state(int *psize)
+ 
+ 	memset(&r, 0, sizeof(r));
+ 
+-	fprintf(stderr, "Allocated buffer at %p (base is 0x%x)\n", buffer,
++	fprintf(stderr, "Allocated buffer at %p (base is 0x%zx)\n", buffer,
+ 			LRMI_base_addr());
+ 
+ 	r.eax = 0x4f04;
+diff -Nupr suspend~/vbetool/vbetool.c suspend/vbetool/vbetool.c
+--- suspend~/vbetool/vbetool.c	2020-05-14 20:16:16.880562075 +0200
++++ suspend/vbetool/vbetool.c	2020-05-14 20:50:20.563096451 +0200
+@@ -243,9 +243,9 @@ void restore_state_from(char *data)
+ 	r.eax = 0x4f04;
+ 	r.ecx = 0xf;		/* all states */
+ 	r.edx = 2;		/* restore state */
+-	r.es = (unsigned int) (data - LRMI_base_addr()) >> 4;
+-	r.ebx = (unsigned int) (data - LRMI_base_addr()) & 0xf;
+-	r.ds = 0x0040;
++	r.es  = (unsigned short) (((data - (char*) LRMI_base_addr()) >> 4) & 0xffff);
++	r.ebx = (unsigned int)    ((data - (char*) LRMI_base_addr()) & 0xf);
++	r.ds  = 0x0040;
+ 
+ 	if (!LRMI_int(0x10, &r)) {
+ 		fprintf(stderr,
+@@ -327,9 +327,9 @@ char *__save_state(int *psize)
+ 	r.ecx = 0xf;		/* all states */
+ 	r.edx = 1;		/* save state */
+ 	
+-	r.es = (unsigned int) (buffer - LRMI_base_addr()) >> 4;
+-	r.ebx = (unsigned int) (buffer - LRMI_base_addr()) & 0xf;
+-	r.ds = 0x0040;
++	r.es  = (unsigned short) (((buffer - (char*) LRMI_base_addr()) >> 4) & 0xffff);
++	r.ebx = (unsigned int)    ((buffer - (char*) LRMI_base_addr()) & 0xf);
++	r.ds  = 0x0040;
+ 
+ 	fprintf(stderr, "ES: 0x%04X EBX: 0x%04X\n", r.es, r.ebx);
+ 
+@@ -525,8 +525,8 @@ int do_get_panel_id(int just_dimensions)
+     .ebx = 0x0001
+   };
+   struct panel_id *id = LRMI_alloc_real(sizeof(struct panel_id));
+-  r.es = (unsigned short)(((int)(id-LRMI_base_addr()) >> 4) & 0xffff);
+-  r.edi = (unsigned long)(id-LRMI_base_addr()) & 0xf;
++  r.es  = (unsigned short) (((id - LRMI_base_addr()) >> 4) & 0xffff);
++  r.edi = (unsigned long)   ((id - LRMI_base_addr()) & 0xf);
+ 
+   if(sizeof(struct panel_id) != 32)
+     return fprintf(stderr, "oops: panel_id, sizeof struct panel_id != 32, it's %ld...\n", sizeof(struct panel_id)), 7;

Consider giving Nix/NixOS a try! <3