# Perforce Public Depot Jobs # # Job: The job name. 'new' generates a sequenced job number. # Status: Job status; [open/closed/suspended]. Required # Project: The project this job is for [none/cdsp4/jam/p4hl] Optional. # Severity: [A/B/C] (A is highest) Required. # ReportedBy The user who created the job. Can be changed. # ReportedDate: The date the job was created. Automatic. # ModifiedBy: The user who last modified this job. Automatic. # ModifiedDate: The date this job was last modified. Automatic. # OwnedBy: The owner, responsible for doing the job. Optional. # Description: Description of the job. Required. # DevNotes: Developer's comments. Optional. Job: job000023 Status: open Project: jam Severity: B ReportedBy: [email protected] ReportedDate: 2002/12/19 08:35:45 ModifiedBy: shawn_hladky ModifiedDate: 2008/04/13 13:00:54 Description: Jam and ar archive format issues on AIX 4.3 This was brought to my attention during the Jam 2.5 release work; what follows is taken from http://maillist.perforce.com/pipermail/jamming/2000-June/000958.html - rmg 12/19/2002 ----- Roesler, Randy [email protected] write: AIX 4.3 changed the format of ar archives. They refer to the new format as AR_BIG, it extends ths size of the file names which can be stored in the main part of the archive header to 20 bytes (from 16). All AIX 4.3 commands ONLY produce archives in the=20 big format (they can read the older "SMALL" format as well). Otherwise, the archive header has not changed. The problem is that the header file, by default, selects the AR_SMALL format. Here is the two pathes to get Jam to work with=20 the big farmat archives. I've assumed that Jam does not need to be able to handle the small archive format, as Jam really only needs to parse/scan/timestamp libraries which it itself has created. (There was a very small change in Jamfile for Jam itself, the line if $(OS)(OSVER) =3D AIX43 { CFLAGS +=3D -D_AIX43 ; } needs to be added.) Randy Roesler Software Architect MDSI Mobile Data Solutions 10271 Shellbridge Way *** ../../orginal/src/jam.h Thu Sep 16 21:06:13 1999 --- jam.h Wed Jun 7 13:21:23 2000 *************** *** 151,160 **** --- 151,164 ---- # ifdef _AIX # define unix + # ifdef _AIX43 + # define OSSYMS "UNIX=true","OS=AIX","OSVER=43" + # else # ifdef _AIX41 # define OSSYMS "UNIX=true","OS=AIX","OSVER=41" # else # define OSSYMS "UNIX=true","OS=AIX","OSVER=32" + # endif # endif # endif *** ../../orginal/src/fileunix.c Thu Sep 16 21:06:01 1999 --- fileunix.c Wed Jun 7 15:22:46 2000 *************** *** 44,49 **** --- 44,53 ---- # else # if !defined( __QNX__ ) && !defined( __BEOS__ ) + # ifdef _AIX43 + /* AIX 43 ar SUPPORTs only __AR_BIG__ */ + # define __AR_BIG__ + # endif # include <ar.h> # endif /* QNX */ # endif /* MVS */ *************** *** 274,282 **** if( ( fd = open( archive, O_RDONLY, 0 ) ) < 0 ) return; ! if( read( fd, (char *)&fl_hdr, FL_HSZ ) != FL_HSZ || strncmp( AIAMAG, fl_hdr.fl_magic, SAIAMAG ) ) { close( fd ); return; } --- 278,291 ---- if( ( fd = open( archive, O_RDONLY, 0 ) ) < 0 ) return; ! if( read( fd, (char *)&fl_hdr, FL_HSZ ) != FL_HSZ || ! #ifdef _AIX43 ! strncmp( AIAMAGBIG, fl_hdr.fl_magic, SAIAMAG ) ) ! #else strncmp( AIAMAG, fl_hdr.fl_magic, SAIAMAG ) ) + #endif { + printf( "magic number wrong on %s\n", archive ); close( fd ); return; }