> in the calling package render this array
> available to any package
> being called by the calling package or program?
  This is confusing.  Packages don't call, and aren't called.
Procedures and functions do that.  And visibility is not something a
caller passes on to a callee.
If you have
Package One is ... end One;
Package Two is ... end Two;
and you want to change them so they both have access to X and P in
Package Database is
   X : Boolean;
   procedure P;
then add "with Database;" to the "with" list of each of One and Two and
each will be able to refer to the boolean Database.X and the procedure