In several distributions of Linux, there's an #include_next directive in limits.h. When attempting to compile a program that includes it, pcc fails with a "file not found" error. (Not the exact words, but anyway...) The problem is that the fsrch function returns 0 because it cannot find another file named limits.h in the search path. Official documentation for the #include_next directive is scant, but my guess is that #include_next should attempt to find the next named file, but shouldn't fail if it doesn't.
Oddly enough, of all the header files in the system, only one has this directive, and it is limits.h. Sigh.