Can't find any glibc packages that provide stubs-64.h

Hi all, I’m a relative newcomer to OpenSUSE, having just installed Tumbleweed yesterday. I’m trying to integrate support for OpenSUSE into an existing build script that currently works on Ubuntu and Debian. So far I’ve managed to track down several packages I needed, but one requirement I have yet to be able to find in zypper is /usr/include/gnu/stubs-64.h.

Zypper provided the following clues as to the origin of stubs.h:

zypper search --provides /usr/include/gnu/stubs.h
Loading repository data...
Reading installed packages...

S  | Name        | Summary                                               | Type
---+-------------+-------------------------------------------------------+--------
i+ | glibc-devel | Include Files and Libraries Mandatory for Development | package

However a similar search for stubs-64.h returns no results.

I have installed glibc-devel for the x86-64, i686, and i586 architectures as well, to no avail.

On my Ubuntu system, I can see that stubs-64 and stubs.h (and stubs-32.h) are indeed different files, so I’m really curious why I can’t seem to find stubs-64.h anywhere in the OpenSUSE repos. Note that I haven’t enabled any special repos other than packman:

zypper lr
Repository priorities are without effect. All enabled repositories share the same priority.

# | Alias                            | Name                                     | Enabled | GPG Check | Refresh
--+----------------------------------+------------------------------------------+---------+-----------+--------
1 | download.opensuse.org-non-oss    | Main Repository (NON-OSS)                | Yes     | (r ) Yes  | Yes
2 | download.opensuse.org-oss        | Main Repository (OSS)                    | Yes     | (r ) Yes  | Yes
3 | download.opensuse.org-tumbleweed | Main Update Repository                   | Yes     | (r ) Yes  | Yes
4 | openSUSE-20200724-0              | openSUSE-20200724-0                      | Yes     | (r ) Yes  | Yes
5 | packman                          | Packman repository (openSUSE_Tumbleweed) | Yes     | (r ) Yes  | Yes
6 | repo-debug                       | openSUSE-Tumbleweed-Debug                | No      | ----      | ----
7 | repo-source                      | openSUSE-Tumbleweed-Source               | No      | ----      | ----

I’d appreciate any tips on how I might track down the appropriate repo for this file. Thanks!

I’m looking in Leap 15.2, and I see that “/usr/include/gnu/stubs-64.h” comes from “glibc-devel”.

Hi
It’s there, in /usr/include/gnu need to patch your code to point to the location…

Weird, is it possible the file is just missing from Tumbleweed for some reason?

I have Tumbleweed on a different partition (not the one I am running). Mounting that, I see that “/usr/include/gnu/stubs-64.h” exists.

It’s almost 2 weeks since I last updated that Tumbleweed, so I suppose it is possible that it has since been deleted. But that looks unlikely.

I also have an up-to-date Tumbleweed that I can run in a virtual machine. But I did not install devel packages there, so the header file is probably not on that virtual machine.

Hi
Nope it’s there…


ls -la /usr/include/gnu
total 20
drwxr-xr-x 1 root root  112 Jul 22 04:27 .
drwxr-xr-x 1 root root 3580 May 30 04:20 ..
-rw-r--r-- 1 root root 1665 Jul 22 04:27 lib-names-64.h
-rw-r--r-- 1 root root  467 Jul 22 04:27 lib-names.h
-rw-r--r-- 1 root root 1264 Jul 22 04:27 libc-version.h
-rw-r--r-- 1 root root  523 Jul 22 04:27 stubs-64.h
-rw-r--r-- 1 root root  384 Jul 22 04:27 stubs.h

zypper se -si glibc-devel

S | Name              | Type    | Version  | Arch   | Repository
--+-------------------+---------+----------+--------+----------------------
i | glibc-devel       | package | 2.31-6.2 | x86_64 | Main Repository (OSS)
i | linux-glibc-devel | package | 5.7-1.2  | x86_64 | Main Repository (OSS)

2020-06-19 10:21:54|install|linux-glibc-devel|5.7-1.1|x86_64||download.opensuse.org-oss|c7f088b3480205d8df58ce293f9d1937a4a9802613b23a624361e32d2843cb7d|
2020-06-30 15:13:29|install|glibc-devel|2.31-6.1|x86_64||download.opensuse.org-oss|9837d589d7b4a83af73408796a32d0b9c1c037349776ddede63ba44f7818e1da|
2020-07-24 20:27:12|install|linux-glibc-devel|5.7-1.2|x86_64||download.opensuse.org-oss|001280f375267734d7d9a5e8fa964a47b94e1d72d1a292c6af874daad615caf5|
2020-07-24 20:27:30|install|glibc-devel|2.31-6.2|x86_64||download.opensuse.org-oss|f99f23633cd9f0996fed313201d9349dc2b62feb77202883dd884c11975d5c1f|

I think I solved this… part of the install script was reinstalling glibc.i686 every time it ran, but apparently I need glibc.x86_64 if I want stubs-64.h. I noticed this when I ran ‘zypper dup’ and it wanted to replace the i686 package with x86_64, then I ran my build script and I saw it replaced x86_64 with i686 again.

Still need to find out why the original devs insisted upon i686…