mainAutoconf - Support: sr #111111, AC_SYS_LARGEFILE system wide...

 
 

sr #111111: AC_SYS_LARGEFILE system wide control and autoconf releases

Submitter:  Румен Петров <rpetrov>
Submitted:  Sun 25 Aug 2024 08:46:40 AM UTC
   
 
Priority:  * 5 - Unprioritized Severity:  1 - Wish
Status:  Done Privacy:  Public
Assigned to:  None Open/Closed:  Closed
Operating System:  None
* Mandatory Fields

Add a New Comment Rich Markup
   

Sat 19 Oct 2024 04:45:22 PM UTC, comment #4: 

It seems to me this issue(wish) could be closed, based on discussion below.


Румен Петров <rpetrov>
Fri 06 Sep 2024 12:21:02 AM UTC, comment #3: 

[comment #2:]

> ac_cv_sys_largefile_opts='none needed'
> ac_cv_sys_file_offset_bits=no


That should work. I'd go with that rather than anything more complicated. Still not sure it's worth documenting, but there are no plans to change it.

Paul Eggert <eggert>
Group administrator
Sat 31 Aug 2024 09:02:13 AM UTC, comment #2: 

https://savannah.gnu.org/support/index.php?&func=detailitem&item_id=111111&


My current solution is publicly available - https://gitlab.com/secsh/pkixssh/-/blob/master/m4/android.m4 . In brief:
ac_cv_sys_largefile_opts='none needed'
ac_cv_sys_file_offset_bits=no

I'm would like to use a stable solution. Documentation states we to expect additional modifications. This is reason to open this issue.
So use "_cv_" model or ...?


Another clear thing is that Android OS will never correct 64-bits for 32-devices. This support will remain buggy. No surprises - devices with short life cycle.

Remark: In the past build (NDK) uses header files per API level. This model does not have issue with "large files" support. If I remember well issue start with use of so called "unified model" for header files. Now this is the only model used in build process.



As alternative I could call for other "host" except Android. For instance:
case "$host" in
  --linux-android*)
    ;;
  *)
    AC_SYS_LARGEFILE
    ;;
esac

From my point of view such code is not reliable - another macro could use large file as prerequisite. In such case code above is useless as from "another macro" 64-bit will be activated.


What could be alternative solution?

  • macro redefinition in project code :/
  • update macro "large files" to exclude Android :(
  • other


Румен Петров <rpetrov>
Sun 25 Aug 2024 11:11:37 PM UTC, comment #1: 

The cache variables for AC_SYS_LARGEFILE aren't documented, so they aren't part of the stable API.

In Autoconf 2.71 they were ac_cv_sys_largefile_CC, ac_cv_sys_file_offset_bits, ac_cv_sys_large_files. In bleeding-edge Autoconf things are simpler: they are ac_cv_sys_year2038_opts and ac_cv_sys_largefile_opts. You can of course set both sets of cache variables, if you want a cache that works for both bleeding-dege and 2.71 or earlier.

Not sure it's a good idea to document these cache variables, as things are likely to mutate even further in this area (2038 is coming soon! :-) and I don't see ordinary users wanting their values directly. But at least the above paragraph should help you attack the particular problem you face.

Paul Eggert <eggert>
Group administrator
Sun 25 Aug 2024 08:46:40 AM UTC, original submission:  

Main question is how to effectively control "64-bits" on 32-bits OS in long term period.

Introduction

Usually Linux package name encode Linux release and architecture.
Process is slightly different for Android application. It coverer a wide range of OS-releases starting from so called MinSDK(API level).
Use of 64-bit variables is not useful as some functionality is available from different API level. Issue are well document in bionic documentation.

To ensure working binaries for all OS releases starting from API level MinSDK my configuration scripts defines a number of "cache variable" as system wide configuration for Android builds.
One is do not activate "large files" so that binaries could be used on minimum supported API level.

Issue

Autoconf 2.72 changes cv used to control large files. As result "non updated" configure script detects "64 bits" support. This is not useful for 32 bit Android. Actually is wrong.

Questions

(1) How to be sure that script working with Autoconf <= 2.71 and adapted to Autoconf 2.72 will work with future Autoconf releases?
(2) Would autoconf "Cache-Variable-Index" list those related (used) in AC_SYS_LARGEFILE macro?


Regards,
Roumen Petrov
Not member of autconf mailing lists.

Румен Петров <rpetrov>

 

(Note: upload size limit is set to 16384 kB, after insertion of the required escape characters.)

Attach Files:
   
   
Comment:
   

No files currently attached

 

Depends on the following items: None found

Items that depend on this one: None found

 

Carbon-Copy List
  • -email is unavailable- added by eggert (Posted a comment)
  • -email is unavailable- added by rpetrov (Submitted the item)
  •  

    There are 0 votes so far. Votes easily highlight which items people would like to see resolved in priority, independently of the priority of the item set by tracker managers.

    Only logged-in users can vote.

     

    Follow 2 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2024-10-19 eggert Open/ClosedOpen Closed
    2024-10-19 eggert StatusNone Done

    Back to the top

    Powered by Savane 3.15.
    Corresponding source code