From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 48) id 95D5F399C034; Fri, 9 Apr 2021 17:10:37 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 95D5F399C034 From: "thiago at kde dot org" To: gcc-bugs@gcc.gnu.org Subject: [Bug c/100005] New: undefined reference to `_rdrand64_step' Date: Fri, 09 Apr 2021 17:10:37 +0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: c X-Bugzilla-Version: 11.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: thiago at kde dot org X-Bugzilla-Status: UNCONFIRMED X-Bugzilla-Resolution: X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter target_milestone Message-ID: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: gcc-bugs@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-bugs mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 09 Apr 2021 17:10:37 -0000 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3D100005 Bug ID: 100005 Summary: undefined reference to `_rdrand64_step' Product: gcc Version: 11.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: thiago at kde dot org Target Milestone: --- $ cat rdrand.c #include #define NUM_RANDOM_NUMBERS_TO_GENERATE 1024 typedef int (*Generator)(unsigned long long *); int fill_array(Generator generator, unsigned long long *rand_array) { for (int i =3D 0; i < NUM_RANDOM_NUMBERS_TO_GENERATE; i++) { // fast attempt once: if (__builtin_expect(generator(&rand_array[i]), 1)) continue; // retry up to 16 times int j; for (j =3D 0; j < 16; ++j) { if (generator(&rand_array[i])) break; } if (j =3D=3D 16) { // failed, the RNG is out of entropy return -1; } } return 0; } int main() { unsigned long long rand_array[NUM_RANDOM_NUMBERS_TO_GENERATE]; fill_array(_rdrand64_step, rand_array); } $ ~/dev/gcc/bin/gcc -march=3Dhaswell -O2 rdrand.c=20 /usr/bin/ld: /tmp/ccTlQIsV.o: in function `main': rdrand.c:(.text.startup+0x8): undefined reference to `_rdrand64_step' collect2: error: ld returned 1 exit status $ ~/dev/gcc/bin/gcc --version=20=20=20=20=20=20=20=20=20=20=20=20=20=20=20= =20=20=20 gcc (GCC) 11.0.1 20210325 (experimental) Copyright (C) 2021 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. Happens in C++ too, including passing as a template parameter.=