Hi Jan,
Jan Beulich <jbeul...@suse.com> writes: [...] > >> #else >> const unsigned long a = 2862933555777941757; >> #endif >> const unsigned c = 1; > > I'm having a hard time seeing why this need to be a static variable. Its > sole use is ... It's a constant in a hope that compiler is smart enough to optimize it out. >> unsigned long cycles = get_cycles(); >> >> if ( !cycles ) >> return; >> >> __stack_chk_guard = cycles * a + c; > > ... here, where you can as well write a literal 1. For readability. Formula for LCG is X_n+1 = (X_n * a + c) mod m. -- WBR, Volodymyr